DatePickerDialog header 背景色

DatePickerDialog header background color

我已经为 DatePickerDialog 背景设置了样式,它在 Nexus 5 (Marshmallow) 上的显示方式有所不同:

我使用的样式是:

<style name="datepicker">
    <item name="android:background">@color/android:white</item>
    <item name="android:textColorPrimaryInverse">@color/android:black</item>
    <item name="android:textColorPrimary">@color/android:black</item>
    <item name="android:textColorSecondary">@color/colorAccent</item>
    <item name="android:textColorSecondaryInverse">@color/colorAccent</item>
    <item name="android:textColorTertiary">@color/android:black</item>
</style>

(colorAccent是金子)

顶部的年份应该由 textColorSecondary 控制,但现在显示为黑色。 header 的背景是灰色的,我想要白色。棉花糖的这些物品的名称是什么?

这些项目的名称对于所有 android 版本都是相同的 > Andoid 5.0 Lollipop 以符合 Material 设计。

您可以尝试添加父对象并覆盖背景的 headerBackground :

<style name="datepicker" parent="@android:style/Widget.Material.DatePicker">
    <item name="android:background">@color/android:white</item>
    <item name="android:textColorPrimaryInverse">@color/android:black</item>
    <item name="android:textColorPrimary">@color/android:black</item>
    <item name="android:textColorSecondary">@color/colorAccent</item>
    <item name="android:textColorSecondaryInverse">@color/colorAccent</item>
    <item name="android:textColorTertiary">@color/android:black</item>
    <item name="android:headerBackground">@color/android:white</item>
</style>

但是我认为年份颜色与 textColorPrimary 相同。

希望对您有所帮助。

我已经通过更新对话框的 textView 样式解决了这个问题

您可以使用此 styletheme 配置更改文本和 header 颜色。但是,我认为它并不比默认对话框选择器更漂亮。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ...
    <item name="android:datePickerDialogTheme">@style/MyDatePickerDialogTheme</item>

</style>

<style name="MyDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
    <item name="android:textColorPrimaryInverse">#000</item> <!-- header date, month color && calendar text highlight color -->
    <item name="android:textColorSecondaryInverse">#000</item> <!-- header year color -->

    <item name="android:colorAccent">#B09A60</item> <!-- button color -->
</style>

<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker">
    <item name="android:headerBackground">#fff</item> <!-- header background color -->
</style>

测试于 API 22、23、25