Comment changer la couleur de l’icône de la barre d’outils

J’utilise un android.support.v7.widget.Toolbar et appris de cet article comment changer la couleur de l’icône de hamburger en blanc, mais la flèche haut / arrière rest une couleur sombre lorsque j’appelle

setDisplayHomeAsUpEnabled(true); 

Comment puis-je rendre la flèche blanche aussi?

Voici à quoi ressemble ma barre d’outils lorsque j’appelle setDisplayHomeAsUpEnabled ():

entrer la description de l'image ici

… et voici la partie pertinente de mon fichier styles.xml:

  @color/primary #194C5F @color/accent @style/WhiteDrawerIconStyle   true @android:color/white  

    Je l’ai résolu en éditant styles.xml:

      

    … puis référençant le style dans la définition de la barre d’outils de l’activité:

       

    Voici ce que vous recherchez. Mais cela change aussi la couleur de radioButton, etc. Vous pouvez donc utiliser un thème pour cela.

     @color/colorControlNormal 

    Je l’ai résolu par programmation en utilisant ce code:

     final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha); upArrow.setColorFilter(Color.parseColor("#FFFFFF"), PorterDuff.Mode.SRC_ATOP); getSupportActionBar().setHomeAsUpIndicator(upArrow); 

    Révision 1:

    À partir de l’API 23 (Marshmallow), la ressource abc_ic_ab_back_mtrl_am_alpha être abc_ic_ab_back_mtrl_am_alpha est remplacée par abc_ic_ab_back_material .

    Cette réponse est peut-être trop tard, mais voici comment je le fais. Styliser la barre d’outils fera l’affaire. Créez toolbar.xml avec le code suivant.

     < ?xml version="1.0" encoding="utf-8"?>  

    et dans les styles.xml

        

    Enfin, incluez la barre d’outils dans la mise en page

      
        

    Trop tard pour poster, cela a fonctionné pour moi pour changer la couleur du bouton de retour

    Eh bien, il existe un moyen plus facile de le faire

     drawerToggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.ssortingng.open_drawer, R.ssortingng.close_drawer); arrow = drawerToggle.getDrawerArrowDrawable(); 

    Et alors

     arrow.setColor(getResources().getColor(R.color.blue); 

    Ce code fonctionne pour moi:

     public static Drawable changeBackArrowColor(Context context, int color) { Ssortingng resName; int res; resName = Build.VERSION.SDK_INT >= 23 ? "abc_ic_ab_back_material" : "abc_ic_ab_back_mtrl_am_alpha"; res = context.getResources().getIdentifier(resName, "drawable", context.getPackageName()); final Drawable upArrow = context.getResources().getDrawable(res); upArrow.setColorFilter(color, PorterDuff.Mode.SRC_ATOP); return upArrow; } ... getSupportActionBar().setHomeAsUpIndicator(changeBackArrowColor(this, Color.rgb(50, 50, 50))); supportInvalidateOptionsMenu(); 

    En outre, si vous souhaitez modifier la couleur du texte de la barre d’outils:

     Spannable spannableSsortingng = new SpannableSsortingng(t); spannableSsortingng.setSpan(new ForegroundColorSpan(Color.rgb(50, 50, 50)), 0, t.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); toolbar.setText(spannableSsortingng); 

    Travailler à partir des API 19 à 25.

    Modifier votre thème de barre d’outils à ThemeOverlay.AppCompat.Dark

     < ?xml version="1.0" encoding="utf-8"?>   

    et le mettre en activité

     mToolbar = (Toolbar) findViewById(R.id.navigation); setSupportActionBar(mToolbar); 

    Au lieu de modifier le style, placez simplement ces deux lignes de code dans votre activité.

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator(R.drawable.arrowleft);