在上图中(不用担心日历定位),除了所选日期的绿色外,整个日历是正确的主题颜色。我尝试过很多东西,但却无法改变主题的最后一部分!我使用Theme.AppCompat.Light.DarkActionBar并通过更改DatePickerDialogTheme的colorAccent来获得当前点。我也尝试过改变
那些似乎没有做过。这是我的XML,提前谢谢你!
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorRed</item>
<item name="colorPrimaryDark">@color/colorRed</item>
<item name="colorAccent">@color/colorRed</item>
<item name="android:datePickerDialogTheme">@style/MyDatePickerDialogTheme</item>
</style>
<style name="MyDatePickerDialogTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:colorAccent">@color/colorRed</item>
</style>
答案 0 :(得分:2)
要更改所选日期的圆圈颜色,请使用
<item name="android:colorControlActivated">@color/your_colour</item>
答案 1 :(得分:0)
使用此主题
<style name="MyDatePickerDialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="android:colorAccent">@color/colorRed</item>
<item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
<item name="android:colorAccent">@color/primaryDark</item>
</style>
和
<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker">
<item name="android:headerBackground">@color/primary</item>
<item name="android:calendarTextColor">@color/primaryDark</item>
<item name="android:dayOfWeekBackground">@color/primaryDark</item>
<item name="android:yearListSelectorColor">@color/accent</item>
<item name="android:datePickerMode">calendar</item>
</style>
答案 2 :(得分:0)
对于所选日期的颜色,您必须使用colorAccent,这是有用的:
<style name="PopupDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
<!--selected day's color: define your own-->
<item name="colorAccent">@color/yourColour</item>
</style>
并在您的类中实例化如下:
final AlertDialog.Builder datePickerBuilder = new AlertDialog.Builder(ProviderMainActivity.this, R.style.PopupDialogTheme);
// ... do something with your dialog, i.e. .show()
关于问题中提到的其他属性:查找their reference并找出他们采用的参数(在xml中)。 例如,要在标题中设置年/月/日的颜色,您必须定义文本外观(CodeFont),如下所示:
<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dpPickDate"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:headerBackground="@drawable/calendar_header"
android:headerYearTextAppearance="@style/YourCodeFont"
android:headerMonthTextAppearance="@style/YourCodeFont"
android:headerDayOfMonthTextAppearance="@style/YourCodeFont"/>
注意您需要在styles.xml
中定义的YourCodeFont:
<style name="PopupCodeFont" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@color/black</item>
</style>
你不能,例如这样做:
android:headerYearTextAppearance="@color/black"
另请注意,其中一些属性(例如headerYearTextAppearance
}需要API 21+,因此可以更好地处理和测试以前的版本。