我是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>
我想补充一些额外的要点:
> android:calendarTextColor属性正在工作,如果我把它放在MyDatePickerStyleTheme但在放入MydatePickerStyle时不工作.换句话说,后来的主题风格没有任何效果.
>在不同的Android版本(Lollipop和Marshmallow)上,相同的代码提供了截然不同的外观布局.
>我现在只想更改选定的日期颜色,但如何以良好的方式更改日期和其他样式之间的间距.
任何帮助将受到高度赞赏.
解决方法:
<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 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>