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

use*_*670 5 android datepicker android-layout

我是 android 编程新手,我想DatePicker在我的布局中使用 element 。我能够成功使用它,但我不知道如何更改其选定的日期颜色。我在这个网站上读过很多帖子,他们谈论了改变DatePickerDialog. 我尝试对DatePicker元素遵循类似的方法,但无法做到。我可以更改日期的textColorusingcalendarTextColor属性。我的布局文件代码如下:

<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>
Run Code Online (Sandbox Code Playgroud)

这是相应的 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>
Run Code Online (Sandbox Code Playgroud)

我想补充一些额外的观点:

  1. android:calendarTextColor如果我把它放在里面,属性就可以工作MyDatePickerStyleTheme,但是当我把它放在里面时,属性就不起作用MydatePickerStyle
    换句话说,后面的主题样式没有任何效果。
  2. 在不同的 Android 版本(Lollipop 和 Marshmallow)上,相同的代码给出了非常不同的外观布局。
  3. 我现在只想更改选定的日期颜色,但如何以良好的方式更改日期和其他样式之间的间距。

任何帮助将不胜感激。

Har*_*sar 1

<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>
Run Code Online (Sandbox Code Playgroud)

<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>
Run Code Online (Sandbox Code Playgroud)