2016-08-04 51 views
4

Ich bin neu in Android-Programmierung und ich möchte DatePicker Element in meinem Layout verwenden. Ich kann es erfolgreich verwenden, aber ich kann nicht herausfinden, wie ich die gewählte Datumsfarbe ändern kann. Ich habe viele Threads auf dieser Seite gelesen und sie sprechen über die Veränderung der Farbe in einem DatePickerDialog. Ich habe versucht, ähnliche Ansätze für das DatePicker Element zu verfolgen, konnte es aber nicht tun. Ich kann das Datum textColor mit calendarTextColor Attribut ändern. Mein Code für Layout-Datei lautet wie folgt:Android: Wie ändert man die Farbe des ausgewählten Datums in einem DatePicker Element?

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

Und hier ist der entsprechende styles.xml Code:

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

Einige zusätzliche Punkte, die ich hinzufügen:

  1. android:calendarTextColor Attribut funktioniert, wenn ich es in MyDatePickerStyleTheme stecke, aber nicht funktioniert, wenn Sie MydatePickerStyle setzen.
    Mit anderen Worten hat der spätere Themenstil keine Wirkung.
  2. Auf verschiedenen Android-Versionen (Lollipop und Marshmallow), gibt der gleiche Code sehr unterschiedlich aussehende Layouts.
  3. Ich möchte nur ausgewählte Datumsfarbe für jetzt ändern, aber wie man den Abstand zwischen den Daten und anderen Stilen auf eine gute Art und Weise ändert.

Jede Hilfe würde sehr geschätzt werden.

Antwort

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> 

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

+0

I versucht, was Sie vorgeschlagen haben, aber es hat nicht funktioniert. Und ich hatte vorher auch das Attribut colorAccent. – user3800670