如何在 android 中更改 DatePicker 的样式?

新手上路,请多包涵

我想更改 Android 中日期/时间选择器对话框的默认颜色,使其与我的应用程序主题相匹配。我在谷歌上搜索了解决方案,但找不到解决方案。

我正在做的是创造一种新的风格:

   <style name="datepicker" parent="@android:style/Widget.DeviceDefault.DatePicker">
    <!---TODO-->
    <item name="android:focusedMonthDateColor">@android:color/holo_red_dark</item>
</style>

不知道日期选择器对话可用的属性是什么。如果有人可以在上面发布链接,那就太好了

添加样式后,我在我的主要样式中将其称为

 <item name="android:datePickerStyle">@style/datepicker</item>

不幸的是,这对我根本不起作用。

原文由 silverFoxA 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

尝试这个。这是最简单最有效的方法

<style name="datepicker" parent="Theme.AppCompat.Light.Dialog">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/primary</item>
</style>

原文由 silverFoxA 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于昼夜主题:

  1. 为日期/时间选择器创建主题:
    <style name="App.Dialog.DateTime" parent="Theme.AppCompat.DayNight.Dialog">
       <item name="colorAccent">?attr/clAccent</item>
       <item name="android:windowBackground">?attr/clPrimary</item>
       <item name="android:buttonBarNegativeButtonStyle">@style/App.Dialog.NegativeButton</item>

       <!--  For overScrollMode  -->
       <item name="android:colorEdgeEffect">?attr/clAccentRipple</item>
       <item name="android:overScrollMode">ifContentScrolls</item>
   </style>

   <style name="App.Dialog.NegativeButton" parent="@style/Widget.AppCompat.Button.ButtonBar.AlertDialog">
       <item name="android:textColor">?attr/clContentSecond</item>
   </style>

您可以为不同的对话框按钮指定样式(就像我通过 App.Dialog.NegativeButton 所做的那样)

另外,我尝试了另一个父主题(用于 App.Dialog.DateTime ): Theme.AppCompat.DayNight.Dialog.Alert ,但结果看起来很丑,对话框窗口大小很奇怪。

  1. 在您的应用主题中设置日期/时间选择器主题:
    <item name="android:datePickerDialogTheme">@style/App.Dialog.DateTime</item>
   <item name="android:timePickerDialogTheme">@style/App.Dialog.DateTime</item>


结果:

样式化日期选择器对话框的外观

有关更多对话框自定义,您可以从这个 答案 中检查 xml 键。

原文由 SerjantArbuz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题