Android:如何更改 DatePicker 元素中选定日期的颜色?

标签 android android-layout datepicker

我是 android 编程的新手,我想在我的布局中使用 DatePicker 元素。我能够成功使用它,但我不知道如何更改其选定的日期颜色。我已经阅读了该站点上的许多线程,它们讨论了在 DatePickerDialog 中更改颜色。我曾尝试对 DatePicker 元素采用类似的方法,但无法做到。我可以使用 calendarTextColor 属性更改日期的 textColor。我的布局文件代码如下:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">

            <DatePicker
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/datePicker"
                android:datePickerMode="calendar"
                android:spinnersShown="false"
                android:layout_gravity="center"

                android:layout_marginTop="-52dp"
                android:layout_marginBottom="-20dp"
                style="@style/MyDatePickerStyleTheme"
                />

</LinearLayout>

这是相应的 styles.xml 代码:

<style name="MyDatePickerStyleTheme" parent="@android:style/Theme.Holo.Light.Dialog">
    <item name="colorAccent"> #00ff00 </item>

    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
    <item name="android:colorPrimary"> #00ff00 </item>
    <item name="android:colorPrimaryDark"> #00ff00 </item>
    <item name="android:colorAccent"> #00ff00 </item>
    <item name="android:backgroundTint"> #00ff00 </item>
    <!-- <item name="android:calendarTextColor"> #00ff00 </item> -->


</style>

<style name="MyDatePickerStyle">
    <item name="android:calendarTextColor"> #00ff00 </item>
</style>

我想补充的几点:

  1. android:calendarTextColor 属性在我将其放入 MyDatePickerStyleTheme 中时有效,但在放入 MydatePickerStyle 中时无效。
    也就是说后面的主题样式没有任何效果。
  2. 在不同的 Android 版本(Lollipop 和 Marshmallow)上,相同的代码会给出截然不同的布局。
  3. 我现在只想更改所选日期的颜色,但如何以良好的方式更改日期和其他样式之间的间距。

如有任何帮助,我们将不胜感激。

最佳答案

添加到你的 styles.xml

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

<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker">
    <item name="android:headerBackground">@color/beautiful_color</item>
    <item name="android:datePickerMode">calendar</item>
</style>

然后在 View 所在的布局中,添加 android:theme 属性,而不是 style

<DatePicker
     android:theme="@style/MyDatePickerDialogTheme"
     android:id="@+id/datePicker"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" />

关于Android:如何更改 DatePicker 元素中选定日期的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38766726/

相关文章:

java - 使用 FCM、SQL、java 将推送通知发送到多个设备

android - CardView 示例不工作

android - 在 android studio 中使用 gradle 构建变体的最佳实践

android - 如何在触摸图像时放大/缩小全屏查看图像

Android 约束布局无法按预期工作

javascript - 时刻日期选择器的设置

java - 如何在 fragment 中实现 Android 日期选择器

javascript - jquery datepicker - 选定日期加上 6 天

android - 在 OpenFeint 中解锁成就

android - 如何获取 GridView 的行数?