2015-05-28 10 views
8

Dies ist mein erstes Mal eine Frage zu stellen.Android: Wie ändere ich die Farbe des Datumsselektors in Datepicker Widget?

Ich habe erfolgreich einen Datepicker in meiner App implementiert (Targeting nur SDK 21 und höher). Ich möchte auch meinen Datepicker so gestalten, dass er mit dem Rest der App harmoniert. Das ist, was ich habe:

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

<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> 
</style> 

ich nicht das Attribut finden kann die Farbe des Tages Wählers im Kalender zu ändern. Kein Attribut aufgeführt here tut das. Allerdings konnte ich die Farbe des Jahresselektors (siehe rechte Seite des Screenshots) mit dem Attribut "yearListSelectorColor" ändern. Wie kann ich den entsprechenden Selektor und die ausgewählte Textfarbe auf der linken Seite färben?

Um zu klären, ist es das, was meine Datepicker wie folgt aussieht: Screenshots

Also, wenn jemand weiß, wie dieser Standard teal Farbe loszuwerden, bitte sagen Sie mir.

Vielen Dank!

Antwort

16

Okay, ich denke ich habe es.

Ich versuchte verzweifelt, ein Attribut in MyDatePickerStyle zu finden. Die Lösung kam mir in den Sinn, als ich die gesamte Vererbungshierarchie neu überlegte. Ich musste nur den colorAccent zum MyDatePickerDialogTheme hinzufügen.

<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> 

<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> 
</style> 

Irgendwie dachte ich jedes Thema automatisch die Primärfarben aus dem AppTheme bekommt.

Also hoffentlich wird dies jemandem in der Zukunft helfen.

+0

Dies funktioniert nicht für mich, Datumsauswahl nicht geändert –

+0

Dies funktioniert https://Stackoverflow.com/a/48551810/1621111 –

Verwandte Themen