How to change color of the back arrow in the new material theme? How to change color of the back arrow in the new material theme? android android

How to change color of the back arrow in the new material theme?


You can achieve it through code. Obtain the back arrow drawable, modify its color with a filter, and set it as back button.

final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);upArrow.setColorFilter(getResources().getColor(R.color.grey), PorterDuff.Mode.SRC_ATOP);getSupportActionBar().setHomeAsUpIndicator(upArrow);

Revision 1:

Starting from API 23 (Marshmallow) the drawable resource abc_ic_ab_back_mtrl_am_alpha is changed to abc_ic_ab_back_material.

EDIT:

You can use this code to achieve the results you want:

toolbar.getNavigationIcon().setColorFilter(getResources().getColor(R.color.blue_gray_15), PorterDuff.Mode.SRC_ATOP);


Looking at the Toolbar and TintManager source, drawable/abc_ic_ab_back_mtrl_am_alpha is tinted with the value of the style attribute colorControlNormal.

I did try setting this in my project (with <item name="colorControlNormal">@color/my_awesome_color</item> in my theme), but it's still black for me.

Update:

Found it. You need to set the actionBarTheme attribute (not actionBarStyle) with colorControlNormal.

Eg:

<style name="MyTheme" parent="Theme.AppCompat.Light">            <item name="actionBarTheme">@style/MyApp.ActionBarTheme</item>    <item name="actionBarStyle">@style/MyApp.ActionBar</item>    <!-- color for widget theming, eg EditText. Doesn't effect ActionBar. -->    <item name="colorControlNormal">@color/my_awesome_color</item>    <!-- The animated arrow style -->    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item></style><style name="MyApp.ActionBarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar">           <!-- THIS is where you can color the arrow! -->    <item name="colorControlNormal">@color/my_awesome_color</item></style><style name="MyApp.ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar">    <item name="elevation">0dp</item>          <!-- style for actionBar title -->      <item name="titleTextStyle">@style/ActionBarTitleText</item>    <!-- style for actionBar subtitle -->      <item name="subtitleTextStyle">@style/ActionBarSubtitleText</item>    <!--     the actionBarTheme doesn't use the colorControlNormal attribute    <item name="colorControlNormal">@color/my_awesome_color</item>     --></style>


Tried all suggestions above. The only way that I managed to change the color of navigation icon default Back button arrow in my toolbar is to set colorControlNormal in base theme like this. Probably due to the fact that the parent is using Theme.AppCompat.Light.NoActionBar

<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar">  <item name="colorControlNormal">@color/white</item>   //the rest of your codes...</style>