当使用MaterialDatePicker方法创建MaterialDatePicker.todayInUtcMilliseconds()时,我们的应用程序将返回一个时间戳,该时间戳是当前日期之外的一天。
我们用于显示MaterialDatePicker的简化代码如下:
val picker: MaterialDatePicker<Long> = MaterialDatePicker.Builder.datePicker()
.setInputMode(MaterialDatePicker.INPUT_MODE_CALENDAR)
.setSelection(MaterialDatePicker.todayInUtcMilliseconds())
.setTitleText("Custom title")
.build()
picker.run {
addOnPositiveButtonClickListener(viewModel::updateContractDate)
show(parentActivity.supportFragmentManager, picker.toString())
}当显示时,它显示选定的昨天日期(7月6日)如下所示:

这特别奇怪,因为相同的示例代码在材料组件库的示例“目录”应用程序中使用时,在相同的设备上正确返回。
我们正在使用最新的材料库版本1.3.0-alpha 01,并在Android10-API 29和Android8.1- API 27上观察到了这一点。我们还在应用程序的其他地方使用杰克·沃顿的ThreeTen安卓Backport,但我不确定这是否相关。
任何帮助都将不胜感激!
发布于 2020-07-07 11:17:40
这看起来是一个错误的最新材料组件库版本1.3.0-alpha 01。它已经修好了,但没有被放入建筑中。
建议解决方案将通过在顶级build.gradle文件中使用以下内容来使用库的“每日构建”
maven {
name = "MaterialSnapshots"
url = uri("https://maven.pkg.github.com/material-components/material-components-android")
credentials {
username = <github_username>
password = <github_access_token>
}
}并将1.3.0-dev-20200619版本用作依赖项
发布于 2020-07-16 22:25:45
https://stackoverflow.com/questions/62772251
复制相似问题