如何在 MaterialDatePicker 中禁用过去的日期?

Dee*_*put 2 android datepicker android-datepicker material-components material-components-android

 //Material Date Picker
private val calendar = Calendar.getInstance()
private val constraintsBuilder = CalendarConstraints.Builder().setStart(calendar.timeInMillis)
private val builder = MaterialDatePicker.Builder.datePicker()
private val picker = builder
    .setSelection(calendar.timeInMillis)
    .setInputMode(MaterialDatePicker.INPUT_MODE_CALENDAR)
    .setCalendarConstraints(constraintsBuilder.build())
    .build()
Run Code Online (Sandbox Code Playgroud)

我正在使用上面的代码打开日历 setSelection 方法选择当前日期和 setStart 只适用于当月所以我无法选择上个月的日期但我仍然可以选择当月的过去日期。

如果有人可以帮助我。请告诉我。谢谢。

Gab*_*tti 8

您可以构建自己的DateValidator,也可以只使用DateValidatorPointForward库提供的。

就像是:

//Returns a DateValidator which enables days from {@code point}, in 
//UTC milliseconds, forward
CalendarConstraints.DateValidator dateValidator = DateValidatorPointForward.from(yourDate);
constraintsBuilder.setValidator(dateValidator);
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明