首页 > 解决方案 > 如何正确实施材料日期范围选择器?

问题描述

我正在用这个材料库实现日期范围选择器。

implementation "com.google.android.material:material:1.2.0-alpha05"

这就是我实施的。

btn_calendar.setOnClickListener {
    val builder = MaterialDatePicker
        .Builder
        .dateRangePicker()
        .setTheme(R.style.DatePickerTheme)
//                .setTitleText("Select dates")
//                .build()

    val now = Calendar.getInstance()

    val picker = builder.build()
    builder.setSelection(androidx.core.util.Pair(now.timeInMillis, now.timeInMillis))
    picker.show(supportFragmentManager, picker.toString())

    picker.addOnPositiveButtonClickListener {
        Toast.makeText(this, "Date String = ${picker.headerText}::  Date epoch values::${it.first}:: to :: ${it.second}", Toast.LENGTH_SHORT).show()
    }
}

风格是:

<style name="DatePickerTheme" parent="Theme.MaterialComponents"/>

但是,它显示出奇怪的外观。我怎样才能解决这个问题?我要对话框

在此处输入图像描述

标签: androiddateandroid-datepicker

解决方案


您应该使用Material Components Theme作为应用程序主题。
无论如何,如果您正在使用:

.setTheme(R.style.DatePickerTheme)

您应该定义一个主题,例如:

  <style name="DatePickerTheme"
           parent="ThemeOverlay.MaterialComponents.MaterialCalendar" >
       ....
  </style>

推荐阅读