问题描述
我有一个在 <div class="total">
<div class="row1">
<div class="aaa">aaa</div>
</div>
<div class="row2">
<div class="bbb">bbb</div>
<button class="ccc">ccc</button>
</div>
</div>
模式下使用的日期选择器对话框。这是日期选择器对话框使用的主题。
spinner
当我在“黑暗模式 = 关闭”时使用它时效果很好。但是当“Dark Mode = on”时它不会反转颜色。无论暗模式如何,这都是对话框的样子
我尝试将父主题更改为 <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>
。现在,当“暗模式 = 开启”时,对话框看起来像这样
如何使 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>