2015-02-24 9 views
5

Sto usando la nuova barra degli strumenti Android appcompat. Devo impostare lo stesso colore personalizzato sia per l'icona di hamburger che per le icone di freccia indietro. L'utilizzo di drawerArrowStyle mi consente di cambiare l'icona di burger ma non la freccia. Il problema riguarda solo i dispositivi Lollipop, qualsiasi cosa pre-lollipop va bene.Android: impossibile cambiare il colore di freccia indietro icona di navigazione

Burger

Arrow

Ecco il codice:

Toolbar:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize" 
    android:background="@color/my_primary" 
    local:theme="@style/My.Toolbar" 
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

Style.xml:

<style name="Theme.Base" parent="Theme.AppCompat.Light"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    <item name="windowActionBar">false</item> 
    <item name="android:windowNoTitle">true</item> 
    <!-- colorPrimary is used for the default action bar background --> 
    <item name="colorPrimary">@color/my_primary</item> 
    <!-- colorPrimaryDark is used for the status bar --> 
    <item name="colorPrimaryDark">@color/black</item> 
    </style> 

    <style name="My.Theme" parent="Theme.Base"> 
     <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> 
    </style> 

    <style name="My.Toolbar" parent="Theme.AppCompat.NoActionBar"> 
     <!-- color of the title text in the Toolbar, in the Theme.AppCompat theme: --> 
     <item name="android:textColorPrimary">@color/my_actionbartext</item> 

     <!-- necessary to support older Android versions.--> 
     <item name="actionMenuTextColor">@color/my_actionbartext</item> 

     <item name="android:textColorSecondary">@color/my_actionbartext</item> 
    </style> 

    <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> 
      <item name="color">@color/my_actionbartext</item> 
    </style> 

Ho provato a utilizzare la soluzione da here ma non ha funzionato. Qualcuno ha qualche idea?

+0

possibile duplicato di [Come cambiare il colore della freccia indietro nel nuovo tema materiale?] (Http://stackoverflow.com/questions/26788464/how-to-change-color-of-the- back-arrow-in-the-new-material-theme) – Daniel

risposta

1

Il percorso per la giusta soluzione per il problema che ho trovato here

Tuttavia, questo ancora non al 100% di lavoro a causa del nostro uso di DrawerLayout. Il mio collega ha scritto un ottimo post sulla soluzione here

+0

Controlla la mia risposta funziona al 100% – Daniel

+0

Ottimo link, ho dovuto solo cambiare il tema da solo per configurarlo correttamente, ma questo porta il punto che quando un Il cassetto è usato, ha un effetto interessante contro i drawable. – Silmarilos

2

solo fare questo nella vostra attività/Frammento:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
      getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha, null)); 
     else 
      getSupportActionBar().setHomeAsUpIndicator(getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha)); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
1

Sono anche in grado di aggiornare di nuovo il tasto freccia dopo l'aggiornamento a 23.2.0 libreria di supporto

<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar"> 
     <item name="android:textColorPrimary">@color/white</item> 
     <item name="android:textColorSecondary">@color/white</item> 
    </style> 
0

È il colore di actionMenuTextColor. Aggiungi questa linea al tuo tema.

<item name="actionMenuTextColor">your color</item>