Используя MaterialDatePicker Я хочу показать требуемую дату и дать возможность выбрать другую. Но когда появляется DatePicker, он показывает текущую дату вместо указанной.
Я подключаю библиотеку: implementation 'com.google.android.material:material:1.2.0-alpha06'
(или 1.1.0).
Затем переопределите AppTheme
в styles.xml
:
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
И теперь можете отображать DatePicker.
val now = Calendar.getInstance()
now[Calendar.YEAR] = 2020
now[Calendar.MONTH] = 10
now[Calendar.DAY_OF_MONTH] = 1
val builder = MaterialDatePicker.Builder.datePicker()
builder.setSelection(now.timeInMillis)
val picker = builder.build()
fragmentManager?.let { picker.show(it, MaterialDatePicker::class.java.simpleName) }
Это результат. Я хочу показать 1 ноября, но он показывает 7 мая.
ОБНОВЛЕНИЕ 1
Как написано в ссылке выше, мы можем используйте CalendarConstraints.Builder
:
...
val constraintsBuilder = CalendarConstraints.Builder()
constraintsBuilder.setStart(now.timeInMillis)
constraintsBuilder.setEnd(now.timeInMillis)
val builder = MaterialDatePicker.Builder.datePicker()
builder.setCalendarConstraints(constraintsBuilder.build())
builder.setSelection(now.timeInMillis)
...
Это покажет требуемую дату, мы можем выбрать другой день, но мы не можем прокручивать месяцы.
UPDATE 2
Полагаю, это ошибка нового Android DatePicker. Поэтому я должен выбрать известную библиотеку https://github.com/wdullaer/MaterialDateTimePicker. Он выбирает указанную дату правильно и не требует изменения исходной темы.