【问题标题】:MaterialDatePicker todayInUtcMilliseconds method returning incorrect dayMaterialDatePicker todayInUtcMilliseconds 方法返回不正确的日期
【发布时间】:2020-10-27 12:48:08
【问题描述】:

当使用MaterialDatePicker.todayInUtcMilliseconds() 方法创建MaterialDatePicker 时,我们的应用程序返回的时间戳是当前日期的一天。

我们用来显示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 日),如下所示:

尤其很奇怪,因为在 Material Component 库的示例“目录”应用中使用相同的示例代码在同一设备上正确返回

我们正在使用最新的材料库版本 1.3.0-alpha01,并在 Android 10 - API 29 和 Android 8.1 - API 27 上观察到这一点。我们还在应用程序的其他地方使用了 Jake Wharton 的 ThreeTen Android Backport,但我是不确定这是否相关。

任何帮助将不胜感激!

【问题讨论】:

标签: android material-components


【解决方案1】:

从最新的材料组件库版本 1.3.0-alpha01 开始,这看起来是 bug。它已被修复,但未放入构建中。

suggested solution 是通过在顶级 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 版本作为依赖项

【讨论】:

    【解决方案2】:

    这是一个 bug 再次打开另一个 bug
    现在从1.2.0-rc011.3.0-alpha02版本开始修复。

    【讨论】:

    • 看我上面的回答,在 1.3.0-alpha01 中没有修复
    • 1.2.0-rc01 是在 1.3.0-alpha01 之后发布的。 1.3.0-alpha01 还没有修复
    • 材质库中仍然存在此问题。未修复。
    猜你喜欢
    • 2021-12-07
    • 2015-12-14
    • 2020-02-16
    • 2019-12-03
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    相关资源
    最近更新 更多