【问题标题】:How to set min or max date for material datepicker如何为材料日期选择器设置最小或最大日期
【发布时间】:2021-02-08 12:29:39
【问题描述】:

我正在使用谷歌材料 DatePicker,我想为它自己的选择器设置最小和最大日期! 这是我的代码

private fun getDatPikr(tv: MaterialTextView, title: String, pastDays: Boolean = false) {
        val datePicker = MaterialDatePicker.Builder.datePicker()
                .setTitleText(title)
                .build()
        
        datePicker.show(childFragmentManager, "MATERIAL_DATE_PICKER")
        datePicker.addOnPositiveButtonClickListener {
            val calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
            calendar.time = Date(it)
            val date = "${calendar.get(Calendar.DAY_OF_MONTH)}/ " +
                    "${calendar.get(Calendar.MONTH) + 1}/${calendar.get(Calendar.YEAR)}"
            tv.text = date
        }
    }

【问题讨论】:

  • dpd.datePicker.maxDate = datee?.time?:(System.currentTimeMillis() - 36000)

标签: android kotlin


【解决方案1】:

根据新的材料日期选择器,我们可以通过在日历约束中传递 setValidater() 来设置结束日期。

val constraintsBuilder=CalendarConstraints.Builder()
            .setValidator(DateValidatorPointBackward.now())

这样用户只能选择从今天或任何日期开始的向后日期。

【讨论】:

  • 这是最好的方法。
【解决方案2】:

您可以使用CalendarConstraints 来设置配置。如下所示。

 val calendar = Calendar.getInstance()
    val upTo = calendar.timeInMillis
    calendar.set(2020, 1, 15)
    val startFrom = calendar.timeInMillis
    val constraints =CalendarConstraints.Builder()
        .setStart(startFrom)
        .setEnd(upTo)
        .build()
    val datePicker = MaterialDatePicker.Builder.datePicker()
        .setCalendarConstraints(constraints)
        .setTitleText("title")
        .build()

您还可以通过实现 CalendarConstraints.DateValidator 将验证器添加到约束。这将防止无效的日期选择。试一试它在我的设备上显示出一些奇怪的行为。
找到类似的线程。看看This thread。

【讨论】:

  • 但是我需要从这里开始一天而不是一个月你能告诉我怎么做吗?
【解决方案3】:

请查看文档Min 和Max

您也可以使用此方法从代码中执行此操作:

datePicker.setMinDate("Set the min date in millis")

datePicker.setMaxDate("Set the max date in millis")

检查这个答案:here

【讨论】:

  • 确实有效!我使用的是 MaterialDatePicker 而不是 DatePicker
猜你喜欢
  • 2019-07-16
  • 2020-05-31
  • 1970-01-01
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多