Цвет стрелки ActionBarDrawerToggle v7
Когда я пытаюсь изменить цвет ящика переключателя навигации, только гамбургер меняет его, стрелка сохраняет свой собственный цвет. Вы можете увидеть его здесь - ![enter image description here]()
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/app_background</item>
<item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:textColor">@color/primary_text</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</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/holo_red_dark</item>
</style>
Если я изменю родительскую тему на Theme.AppCompat.Light стрелка изменит цвет на черный.
Используется следующий виджет:
android.support.v7.app.ActionBarDrawerToggle;
android.support.v7.widget.Toolbar;
Что я делаю неправильно?
Ответы
Ответ 1
Попробуйте использовать
<item name="colorControlNormal">@color/your_color</item>
<item name="android:colorControlNormal">@color/your_color</item>
вместо стиля стрелки в ящике.
Чтобы очистить мой комментарий, попробуйте также:
<item name="actionBarStyle">@style/My.ActionBar.Style</item>
а затем:
<style name="My.ActionBar.Style" parent="Widget.AppCompat.ActionBar">
<item name="colorControlNormal">@color/your_color</item>
<item name="android:colorControlNormal">@color/your_color</item>
</style>
Ответ 2
Попробуйте изменить цвет DrawerArrow
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">@android:color/white</item>
</style>
Ответ 3
Это сработало для меня:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mDrawerToggle.getDrawerArrowDrawable().setColor(getColor(R.color.drawer_toggle_color));
} else {
mDrawerToggle.getDrawerArrowDrawable().setColor(getResources().getColor(R.color.drawer_toggle_color));
}
Ответ 4
Вы можете установить пользовательскую стрелку или другую иконку, используя метод
toolbar.setNavigationIcon(Int drawable resource);