为深色模式配置 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>
我有一个在 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>