Android:如何在Datepicker小部件中更改日期选择器的颜色?

时间:2015-05-28 16:04:39

标签: android colors datepicker calendar selector

这是我第一次发帖提问。

我已经在我的应用中成功实现了一个Datepicker(仅针对SDK 21及更高版本)。我还希望将我的Datepicker设置为与应用程序的其余部分混合。这就是我所拥有的:

<style name="MyDatePickerDialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
    <item name="android:colorAccent">@color/primDark</item>
</style>

<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker">
    <item name="android:headerBackground">@color/prim</item>
    <item name="android:calendarTextColor">@color/primDark</item>
    <item name="android:dayOfWeekBackground">@color/primDark</item>
    <item name="android:yearListSelectorColor">@color/accent</item>
    <item name="android:datePickerMode">calendar</item>
</style>

我找不到用于更改日历中日期选择器颜色的属性。列出的here没有列出任何属性。但是我能够使用属性“yearListSelectorColor”更改年份选择器的颜色(请参见屏幕截图的右侧)。如何在左侧为相应的选择器和所选文本颜色着色?

为了澄清,这就是我的Datepicker的样子:Screenshots

因此,如果有人知道如何摆脱标准的蓝绿色,请告诉我。

谢谢!

2 个答案:

答案 0 :(得分:17)

好吧,我想我明白了。

我拼命想在MyDatePickerStyle中找到一个属性。当我重新考虑整个继承层次结构时,我想到了解决方案。我只需要将colorAccent添加到MyDatePickerDialogTheme。

<style name="MyDatePickerDialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <!-- this is new -->
    <item name="colorAccent">@color/accent</item>

    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
    <item name="android:colorAccent">@color/primDark</item>
</style>

<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker">
    <item name="android:headerBackground">@color/prim</item>
    <item name="android:calendarTextColor">@color/primDark</item>
    <item name="android:dayOfWeekBackground">@color/primDark</item>
    <item name="android:yearListSelectorColor">@color/accent</item>
    <item name="android:datePickerMode">calendar</item>
    <item name="android:minDate">01/01/2000</item>
</style>

不知何故,我认为每个主题都会自动从AppTheme中获得原色。

希望这将有助于将来的某个人。

答案 1 :(得分:0)

要更改DatePicker中选择器圆圈的颜色,请在主题中使用android:colorControlActivated属性。