2015-01-09 4 views
11

Wenn ich versuche, die Farbe der Navigationsschublade zu ändern, ändert nur der Hamburger die Farbe, der Pfeil behält ihre ursprüngliche Farbe bei. Sie können es hier sehen - enter image description hereActionBarDrawerToggle v7 Pfeilfarbe

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:windowBackground">@drawable/app_background</item> 
    <item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item> 
    <item name="colorPrimary">@color/primary</item> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
    <item name="colorAccent">@color/accent</item> 
    <item name="android:textColor">@color/primary_text</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
</style> 

<style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle"> 
    <item name="spinBars">true</item> 
    <item name="color">@android:color/holo_red_dark</item> 
</style> 

Wenn ich Eltern Thema ändern, um Theme.AppCompat.Light Pfeil ihre Farbe schwarz ändert. Das folgende Widget wird verwendet: android.support.v7.app.ActionBarDrawerToggle; android.support.v7.widget.Toolbar;

Was mache ich falsch?

+0

Mögliches Duplikat von [Farbe des animierten ActionBarDrawerToggle in ActionBar] (http://stackoverflow.com/questions/27250915/color-of-animated-actionbarrdrawertoggle-in-actionbar) – Sanf0rd

+0

Ich habe geantwortet, wie man es programmatisch auf eine andere Frage macht (http://stackoverflow.com/questions/27250915/color-of-animated-actionbardrawertoggle-in-actionbar/40164200#40164200). Bitte markieren Sie diese Frage als doppelt. – Sanf0rd

Antwort

0

Sie setzen könnten benutzerdefinierte Pfeil oder ein anderes Symbol mit der Methode

toolbar.setNavigationIcon(Int drawable resource); 
9

Versuchen

 <item name="colorControlNormal">@color/your_color</item> 
     <item name="android:colorControlNormal">@color/your_color</item> 

statt Ihrer Schublade Pfeilart verwenden.

mein Kommentar zu löschen, versuchen Sie auch:

<item name="actionBarStyle">@style/My.ActionBar.Style</item> 

und dann:

 <style name="My.ActionBar.Style" parent="Widget.AppCompat.ActionBar"> 

     <item name="colorControlNormal">@color/your_color</item> 
     <item name="android:colorControlNormal">@color/your_color</item> 

    </style> 
+0

Arrow änderte ihre Farbe in Weiß. Zauber. –

+0

Das hat früher mit mir gearbeitet. Versuchen Sie, es in einen ' @ style/Your.Custom.ActionBar.Style' – natario

+0

einzufügen. Ich bemerkte schließlich, dass 'colorControlNormal' nur funktioniert, wenn Sie das Pfeilsymbol verwenden, das im SDK mit der Support-Bibliothek bereitgestellt wird (nämlich '@ drawable/abc_ic_ab_back_mtrl_am_alpha'). Es wird nicht funktionieren, wenn Sie das Symbol von woanders importieren, da appcompat nur seine eigenen Zeichenvorlagen tönt. Wenn Sie ein anderes Symbol verwenden möchten, können Sie es nicht über den Stil tönen. – natario

6

versuchen diese Farbe DrawerArrow

für mich
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> 
    <item name="spinBars">true</item> 
    <item name="color">@android:color/white</item> 
</style> 
+0

arbeitete für mich. Vielen Dank! –

5

Das funktionierte zu ändern:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
      mDrawerToggle.getDrawerArrowDrawable().setColor(getColor(R.color.drawer_toggle_color)); 
     } else { 
      mDrawerToggle.getDrawerArrowDrawable().setColor(getResources().getColor(R.color.drawer_toggle_color)); 
     } 
Verwandte Themen