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

9

这是我第一次发帖提问。

我已经成功地在我的应用程序中实现了一个日期选择器(仅针对SDK 21及以上版本)。我还想将我的日期选择器样式与应用程序的其余部分融合。这就是我拥有的:

<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>

我找不到可以更改日历中日期选择器颜色的属性。 这里 没有任何列出相关属性。但是,我通过属性 "yearListSelectorColor" 成功更改了年份选择器的颜色 (请参阅屏幕截图右侧) 。如何更改左侧相应选择器和所选文本的颜色?
为了澄清,这就是我的日期选择器的样子: 屏幕截图
因此,如果有人知道如何去除标准的青绿色,请告诉我。
谢谢!
3个回答

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
这对我不起作用,日期选择器没有改变。 - Konstantin Konopko

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

这并不是对问题的答案。一旦您拥有足够的声誉,您将能够评论任何帖子; 相反,提供不需要询问者澄清的答案。- 来自审核 - meJustAndrew
@meJustAndrew 非常感谢您的反馈。我修复得正确吗? - Miki Vanoušek

1

尝试以下三个步骤:

  • 1:转到活动清单并检查android:theme样式。

enter image description here

  • 2:进入styles.xml文件,从清单中找到android:theme

enter image description here

  • 3:添加新项目:android -> colorAccent和colorControlActivated

enter image description here


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