2014-12-05 14 views
7

Ich benutze die Support-Bibliothek 21 für meine App. Mein Thema wird auch in values-v21 definiert, aber die DatePickerDialog verwendet nicht die Akzentfarbe für die Hintergrund- und Textfarbe.Android DatePickerDialog Akzent Farbe (in V21 +)

Was kann ich tun, um diese Farbe in die Akzentfarbe zu ändern?

Mein aktueller themes.xml sind

Werte/themes.xml

<style name="AppTheme" parent="AppTheme.Base" /> 

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="windowActionModeOverlay">true</item> 

    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

Werte-v21/themes.xml

<style name="AppTheme" parent="AppTheme.Base"> 
    <item name="android:colorPrimary">@color/colorPrimary</item> 
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:colorAccent">@color/colorAccent</item> 

    <item name="android:alertDialogTheme">@style/AppTheme.AlertDialog</item> 
</style> 

<style name="AppTheme.AlertDialog" parent="android:Theme.Material.Light.Dialog.Alert"> 
    <item name="android:colorPrimary">@color/colorPrimary</item> 
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:colorAccent">@color/colorAccent</item> 
</style> 
+0

Das App-Design definiert ein Standarddialogthema. Sie müssen dieses Thema um Ihre Akzentfarbe erweitern. – alanv

+0

@alanv Ich habe meine aktuellen (teilweise funktionierenden) Themen zu meinem ursprünglichen Beitrag hinzugefügt. Kannst du meinen Fehler für den DatePickerDialog sehen? – mars3142

Antwort

19

Ihr Dialog Thema Theme.AppCompat.Light.Dialog erweitern muss statt Theme.Material.Light.Dialog.Alert . Hier ein Beispiel:

<!-- Base Theme Styles --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 

    <!-- my theme stuff --> 
    ... 

    <!-- dialog theme stuff --> 
    <item name="android:dialogTheme">@style/AppTheme.DialogTheme</item> 

</style> 

<!-- Styles for pop-up dialogs --> 
<style name="AppTheme.DialogTheme" parent="Theme.AppCompat.Light.Dialog"> 

    <item name="android:colorPrimary">@color/primaryColor</item> 
    <item name="android:colorPrimaryDark">@color/primaryColorDark</item> 
    <item name="android:colorAccent">@color/accentColor</item> 

</style> 
+0

Aber es muss für Werte-v21 nur getan werden. – kaftanati

+6

@kaftanati nicht wahr, das funktioniert, wenn appcompat v21 verwendet. Sie müssen nur das Präfix "android:" in den Farbelementen weglassen. – Tom

+0

Aber ich habe support-appcompat v7 von allen Geräten (8+). – kaftanati

Verwandte Themen