我正在使用材料日期范围选择器,我想防止选择范围内的相同日期,例如,当开始日期为 2022 年 9 月 11 日时,当用户尝试选择开始日期时,结束日期不应与 2022 年 9 月 11 日相同第二次我想重置选择。有可能实现这种行为吗?我阅读了文档,但没有什么对我有帮助。
private fun showDateRangePicker() {
val calendarConstraints = CalendarConstraints.Builder()
calendarConstraints.setValidator(DateValidatorPointBackward.now())
val dateRangePicker = MaterialDatePicker.Builder.dateRangePicker()
.setTitleText(getString(R.string.date_picker_title))
.setTheme(R.style.MaterialCalendarTheme_RangeFill)
.setCalendarConstraints(calendarConstraints.build())
.setSelection(setSelection)
.build()
dateRangePicker.show(
parentFragmentManager,
"Tag"
)
您可以尝试使用以下方法,但要小心,因为它是 Restricted API ("@RestrictTo({Scope.LIBRARY_GROUP})")
val picker = MaterialDatePicker.Builder
.customDatePicker<Pair<Long?, Long?>>(
object : RangeDateSelector() {
override fun select(selection: Long) {
if (selection == getSelection().first) return
super.select(selection)
}
}).build()