如何使用MaterialComponents正确显示DatePickerDialog?

时间:2018-11-13 12:04:30

标签: android kotlin material-components

我正在使用material.io中的Android MaterialComponents。

我有两个主题(浅色和深色)。我想显示一个DatePickerDialog。 但这是结果: enter image description here

以下是我如何显示对话框的代码:

catch

最后但并非最不重要的是,我的主题:

private fun selectDeadline() {
    val dialog = DateDialog()
    val bundle = Bundle()
    bundle.putInt("themeId", themeId)
    dialog.arguments = bundle
    dialog.show(supportFragmentManager, "")
}

class DateDialog : DialogFragment(), DatePickerDialog.OnDateSetListener {

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        val date = DateTime.now()
        val themeId = arguments!!.getInt("themeId")
        return DatePickerDialog(activity!!, themeId, this, date.year, date.monthOfYear - 1, date.dayOfMonth)
    }

    override fun onDateSet(view: DatePicker?, year: Int, month: Int, day: Int) {
        deadlineTitle.text = "$year, $month, $day"
    }
}

如果我不给themeId作为参数,则它在浅色主题上正确显示,而在深色主题上,它仅显示带有白色文本的浅色版本,由于白色背景,用户看不见。

解决此问题的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

谢谢你的提问。材质组件库当前不支持日期和时间选择器的暗模式。我们计划为此添加支持,请继续关注。