为深色模式配置 android 日期选择器对话框

Configuring android date picker dialog for dark mode

我有一个在 spinner 模式下使用的日期选择器对话框。这是日期选择器对话框使用的主题。

<style name="CustomDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
        <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
    </style>

    <style name="MyDatePickerStyle" parent="@android:style/Widget.Material.DatePicker">
        <item name="android:datePickerMode">spinner</item>

当我在“黑暗模式=关闭”时使用它时,它工作正常。但是当“暗模式=打开”时它不会反转颜色。无论暗模式如何,对话框都是这样的

我尝试将父主题更改为 Theme.AppCompat.DayNight.Dialog。现在,当“暗模式 = on”时,对话框看起来像这样

如何使 DatePickeDialog(微调器模式)与深色模式兼容?

请尝试不指定父主题,这对我有用。但是在您的主题添加 android: windowIsFloating = true 中,您的对话框将全屏显示。这使对话框在屏幕上居中,它变得像一个普通的对话框

这是我的主题:

<style name="CustomDatePickerDialogTheme">
    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
    <item name="android:windowIsFloating">true</item>
</style>

<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.DatePicker" tools:targetApi="lollipop">
    <item name="android:datePickerMode">spinner</item>
</style>

只需要根据您的要求更改主题颜色设置,进行以下更改,如果不起作用,请发表评论。在你的父主题中做你的代码这是一般风格

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">

    <item name="colorAccent">#FC6C2D</item>   ---> I used orange color here to display the picker dialog in orange color.

    <item name="android:textColorPrimary">#000000</item>
    <item name="android:textColorSecondary">#000000</item>

</style>