Изменить цвет панели инструментов Гамбургер / Backarrow Android

Я хочу изменить цвет моего гамбургера /backarrow на панели инструментов с colorPrimaryDark на белый.

В моем файле style.xml у меня есть 2 темы:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorPrimary</item>
    <item name="colorButtonNormal">@color/white</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>


<!-- Toolbar theme. -->
<style name="toolbar" parent="AppTheme">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/white</item>
    <item name="colorControlNormal">@color/white</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:textColorSecondary">@android:color/white</item>
</style>

и это моя панель инструментов:

<android.support.v7.widget.Toolbar 
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/toolbar"
  android:fitsSystemWindows="true"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="@color/colorPrimary"
  android:elevation="4dp"
  android:theme="@style/toolbar">
</android.support.v7.widget.Toolbar>

Я пытался с несколькими методами, и единственный, который работает, это двигаться <item name="android:textColorSecondary">@android:color/white</item> от темы панели инструментов до базовой темы приложения.

Это не хорошо для меня, потому что установка textColorSecondary на белый в базовой теме также изменяет цвет других компонентов. Я хочу установить его только для моей панели инструментов. Но это не работает, хотя у меня есть<item name="android:textColorSecondary">@android:color/white</item> и установить мой стиль панели инструментов в toolbar.xml, используя "android:theme="@style/toolbar"

Странно то, что другие цвета темы применяются правильно.

где я не прав?

1 ответ

Обойти: (но я думаю, что это не элегантное решение)

я установил значок стрелки по умолчанию с этим:

toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_material);

и измените цвет гамбургера следующим образом:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorPrimary</item>
        <item name="colorButtonNormal">@color/white</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/white</item>
</style>
Другие вопросы по тегам