Android CalendarView의 머티리얼 디자인 백 포트입니다. 목표는 플랫폼 구현과 100% 패리티가 아닌 머티리얼 모양과 느낌을 갖는 것입니다.
1단계. 빌드 파일에 JitPack 저장소 추가
allprojects {
repositories {
.. .
maven { url ' https://jitpack.io ' }
}
}
2단계. 종속성 추가
dependencies {
implementation ' com.github.prolificinteractive:material-calendarview:${version} '
}
MaterialCalendarView
레이아웃이나 뷰 계층 구조에 추가하세요.OnDateSelectedListener
설정하거나 필요할 때 MaterialCalendarView.getSelectedDates()
호출하세요.여기에서 Javadoc을 사용할 수 있습니다.
예:
< com .prolificinteractive.materialcalendarview.MaterialCalendarView
xmlns : app = " http://schemas.android.com/apk/res-auto "
android : id = " @+id/calendarView "
android : layout_width = " match_parent "
android : layout_height = " wrap_content "
app : mcv_showOtherDates = " all "
app : mcv_selectionColor = " #00F "
/>
여기에서 제공되는 모든 문서를 확인하세요.
이 라이브러리의 목표 중 하나는 사용자 정의가 가능하다는 것입니다. 다양한 옵션은 다음과 같습니다.
이 모든 것과 그 이상은 데코레이터 API를 통해 수행할 수 있습니다. 데코레이터 문서를 확인하세요.
Material CalendarView 2.0은 API의 핵심이 크게 변경되어 java.util.Calendar
사용에서 java.time.LocalDate
사용으로 전환되었습니다. 또한 공개 API에 영향을 주어서는 안 됩니다(우리는 여전히 CalendarDay
사용하고 있습니다). Calendar
와 LocalDate
모두 약간 다르게 작동합니다. 이에 대한 한 가지 예는 다음과 같습니다. 이제 월은 1(1월)부터 12(12월)까지 인덱싱됩니다. getDate()
사용하여 CalendarDay
의 LocalDate
에서 액세스할 수 있습니다.
또한 이번 릴리스에는 브레이크 변경 사항이 없으며 위젯이 크게 개선되었습니다. 사용자를 위한 더 많은 사용자 정의(사용자 정의 글꼴, 긴 클릭 리스너, 평일 표시/숨기기)가 추가되었을 뿐만 아니라 다양한 수정 사항, 샘플 앱 개선 및 일반 정리가 추가되었습니다. 자세한 내용은 CHANGELOG 및 릴리스 섹션을 확인하세요.
우리는 최근 최신 Gradle로 업데이트하고 라이브러리를 호스팅 서비스 Jitpack으로 이전하기로 결정했습니다. 자세한 내용은 설치 섹션을 참조하세요.
주요 변경 사항: setFirstDayOfWeek
, setMin/MaxDate
및 setCalendarDisplayMode
State
개체로 이동되었습니다. 이는 단순한 설정자가 아니라는 것이 확실하지 않았기 때문에 필요했습니다. 개별적으로는 부작용을 일으키고 전체 어댑터/날짜 범위 재계산을 트리거했습니다. 뷰의 일반적인 사용에는 onCreate
중에 이러한 모든 불변성을 미리 설정하는 것이 포함되며 이 4개를 모두 설정하면 많은 낭비가 발생한다는 사실이 사용자에게 알려지지 않았습니다. 부작용이 있는 것은 말할 것도 없고, 일부는 현재 날짜나 선택한 날짜를 재설정합니다. 결과적으로 동일한 4가지 메서드를 다른 순서로 호출하면 다른 상태가 발생할 수 있으며 이는 좋지 않습니다.
대부분의 경우 해당 불변성 설정을 다음으로 대체하면 됩니다.
mcv . state (). edit ()
. setFirstDayOfWeek ( Calendar . WEDNESDAY )
. setMinimumDate ( CalendarDay . from ( 2016 , 4 , 3 ))
. setMaximumDate ( CalendarDay . from ( 2016 , 5 , 12 ))
. setCalendarDisplayMode ( CalendarMode . WEEKS )
. commit ();
mcv.state().edit()
이전에 설정된 값을 유지합니다. mcv.newState()
기본값을 사용하여 새 상태를 생성합니다. commit
호출하면 어댑터 및 날짜 범위의 재구축이 트리거됩니다. 이러한 상태 변경은 MCV에 대한 첫 번째 수정으로 발생하는 것이 좋습니다(현재 날짜 또는 선택한 날짜와 같은 다른 항목을 구성하기 전). 상태가 수정될 때 해당 수정 사항이 유지된다는 보장은 없습니다.
사용법 세부정보는 CUSTOMIZATION_BUILDER를 참조하세요.
신규: 2개의 날짜를 선택하고 전체 날짜 범위를 선택할 수 있도록 setSelectionMode(SELECTION_MODE_RANGE)
추가되었습니다. 이 기능에 대한 작업을 해주신 papageorgiouk에게 깊은 감사를 드립니다.
CHANGELOG에서 다른 변경 사항을 확인하세요.
기여하고 싶나요? 우리를 포크하고 끌어오기 요청을 보내세요! 먼저 우리의 문제를 확인해 보세요.
자료 달력 보기는 Copyright (c) 2018 Prolific Interactive입니다. LICENSE 파일에 지정된 조건에 따라 재배포될 수 있습니다.
Material Calendar View는 Prolific Interactive에서 유지 관리하고 자금을 지원합니다. 이름과 로고는 Prolific Interactive의 상표입니다.