2017-02-06 3 views
0

Ich erstelle ein Dialogfeld mit benutzerdefinierten Layout, aber im Layout colorAccent wird vollständig ignoriert und durch Standard-Petrol/Farbe ersetzt. Ich habe mein Thema nach this answer geändert. aber immer noch nicht funktioniert. Ich kann ein Thema zu der Zeit des Erstellens von Dialog durch seinen Konstruktor hinzufügen, aber ich möchte es nur nach Thema tun, so dass es jeden Dialog in meiner App betrifft. Jede Hilfe, die dankbar ist, ist hier mein Thema.Android colorAccent wird im Dialog ignoriert

<style name="AppTheme" parent="AppTheme.Base"> 
    <item name="android:windowContentTransitions">true</item> 
    <item name="android:windowAllowEnterTransitionOverlap">true</item> 
    <item name="android:windowAllowReturnTransitionOverlap">true</item> 
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item> 
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item> 
    <item name="android:alertDialogTheme">@style/Theme.Dialog</item> 
</style> 

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="Theme.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

Mein Dialogfeld aussehen wie dieses Bild EditText Cursor meine colorAccent ignoriert.

+0

Sie müssen benutzerdefinierten Stil definieren und dann Akzentfarbe hinzufügen, die der Farbe Ihrer App Accent entspricht. – tahsinRupam

Antwort

2

Hier ist ein Beispielcode

<style name="DialogStyle" parent="Theme.AppCompat.Light.Dialog"> 
     <item name="android:layout_width">match_parent</item> 
     <item name="android:layout_height">match_parent</item> 
     <item name="colorAccent">@color/colorPrimaryDark</item> 
</style> 

Stil definieren, während diaolog in Aktivität zu initiieren.

+0

ich möchte wissen, warum ' @ style/Theme.Dialog' funktioniert nicht –

+0

Ich habe meine Antwort bearbeitet. Warum müssen Sie Theme.Dialog verwenden? Ist es nicht einfacher, direkt auf den Style-Namen für alertDialog zu verweisen? – tahsinRupam

+0

Ich benutze Dialog nicht alertdialog –

Verwandte Themen