日期选择对话框标题背景颜色

6

我已经为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 控制,但现在它显示为黑色。标题栏的背景是灰色的,我想要白色的。在 Marshmallow 中这些项目的名称是什么?

2个回答

15
你可以使用 styletheme 配置来改变文本和标题颜色。然而,我认为它不如默认的对话框选择器美观。
<!-- 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 在这里输入图片描述


我不得不为按钮指定<item name="colorAccent">@color/colorAccent</item>而不是<item name="android:colorAccent">@color/colorAccent</item>,但这很好! - MPelletier

0

这些项目的名称在所有 Android 版本中都相同,> Andoid 5.0 Lollipop 以符合 Material design。

您可以尝试添加父项并覆盖 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相同。

希望这可以帮到你。


年份改变了(不知何故?),但标题背景没有改变。它仍然是灰色的。 - MPelletier
你是在应用主题中覆盖了 <item name="android:datePickerDialogTheme"> ,还是直接在代码中使用了这个样式? - Cochi
直接在代码中添加。作为测试,我将其添加到应用程序主题中并从代码中删除,结果显示相同。 - MPelletier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接