Cómo cambiar el color del icono de inicio de la barra de herramientas

Estoy usando un android.support.v7.widget.Toolbar y aprendí de este post cómo cambiar el color del icono de hamburguesa a blanco, pero la flecha arriba / atrás sigue siendo de color oscuro cuando llamo

setDisplayHomeAsUpEnabled(true); 

¿Cómo puedo hacer que la flecha sea blanca también?

Aquí es donde se ve mi barra de herramientas cuando llamo a setDisplayHomeAsUpEnabled ():

enter image description here

… y aquí está la parte relevante de mi archivo styles.xml:

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

Lo solucioné editando styles.xml:

  

… luego haciendo referencia al estilo en la definición de la barra de herramientas en la actividad:

   

Esto es lo que estás buscando. Pero esto también cambia el color de radioButton, etc. Por lo tanto, es posible que desee utilizar un tema para ello.

 @color/colorControlNormal 

Lo resolví programáticamente usando este código:

 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); 

Revisión 1:

A partir de API 23 (Marshmallow), el recurso abc_ic_ab_back_mtrl_am_alpha se cambia a abc_ic_ab_back_material .

Esta respuesta puede ser demasiado tarde, pero así es como lo hago. Diseñar la barra de herramientas hará el truco. Crea toolbar.xml con el siguiente código.

   

y en el styles.xml

    

Finalmente, incluye la barra de herramientas dentro del diseño

  
    

Demasiado tarde para publicar, esto funcionó para que cambie el color del botón Atrás

Bueno, hay una manera más fácil de hacer esto

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

Y entonces

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

Este código funciona para mí:

 public static Drawable changeBackArrowColor(Context context, int color) { String 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(); 

Además, si desea cambiar el color del texto de la barra de herramientas:

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

Trabajando desde API 19 a 25.

Cambie el tema de la barra de herramientas a ThemeOverlay.AppCompat.Dark

    

y configurarlo en activty

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

En lugar de cambios de estilo, simplemente ponga estas dos líneas de código en su actividad.

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