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

问题描述:

 //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()

我在上面使用代码以打开日历setSelection方法选择当前日期,而setStart仅适用于当前月份,因此我无法选择上个月的日期,但我仍然可以选择当前月份的过去日期。

I am using above code to open calendar setSelection method select current date and setStart only works for current month So i am unable to select previous month dates but i can still select past dates of current month.

如果有什么可以帮助我的。请告诉我。谢谢。

If any can help me out. Please let me know. Thanks.

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

You can build your own DateValidator or you can just use the DateValidatorPointForward provided by the library.

类似的东西:

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