android - 如何正确实施材料日期范围选择器?
问题描述
我正在用这个材料库实现日期范围选择器。
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"/>
但是,它显示出奇怪的外观。我怎样才能解决这个问题?我要对话框
解决方案
您应该使用Material Components Theme作为应用程序主题。
无论如何,如果您正在使用:
.setTheme(R.style.DatePickerTheme)
您应该定义一个主题,例如:
<style name="DatePickerTheme"
parent="ThemeOverlay.MaterialComponents.MaterialCalendar" >
....
</style>
推荐阅读
- powershell - 在同一文件夹中搜索多个 .xml 文件的指定路径
- javascript - 生成的单选按钮选项卡
- selenium - Geckodriver Selenium 自动下载 PDF
- javascript - 尝试在 chartjs 上呈现一些数据时出现问题
- java - SQLEXCEPTION : long 类型的错误值
- java - 在异步调用中更改变量
- c++ - 在 Cap'n Proto RPC 服务器中定期运行函数
- c - 无法在 vscode 中调试单个 .c 文件
- node.js - 在 async/await 中正确处理和传递错误
- datastage - 与 datastage master 相关的错误