2015-01-09 2 views
11

Когда я пытаюсь изменить цвет указателя перемещения курсора, только гамбургер меняет его, стрелка сохраняет свой собственный цвет. Вы можете увидеть здесь - enter image description hereActionBarDrawerToggle v7 arrow color

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

Что я делаю неправильно?

+0

Возможный дубликат [Цвет анимированного ActionBarDrawerToggle в ActionBar] (http://stackoverflow.com/questions/27250915/color-of-animated-actionbardrawertoggle-in-actionbar) – Sanf0rd

+0

Я ответил, как сделать это программно по другому вопросу (http://stackoverflow.com/questions/27250915/color-of-animated-actionbardrawertoggle-in-actionbar/40164200#40164200). Пожалуйста, отметьте этот вопрос как дубликат. – Sanf0rd

ответ

0

Вы можете установить пользовательскую стрелку или другой значок с помощью метода

toolbar.setNavigationIcon(Int drawable resource); 
9

Попробуйте использовать

 <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> 
+0

Стрелка изменила цвет на белый. Магия. –

+0

Это работало со мной. Попробуйте вставить его в ' @ style/Your.Custom.ActionBar.Style' – natario

+0

Наконец-то я заметил, что 'colorControlNormal' работает, только если вы используете значок стрелки, предоставленный в SDK, с помощью библиотеки поддержки (а именно, '@ drawable/abc_ic_ab_back_mtrl_am_alpha'). Он не будет работать, если вы импортируете значок из другого места, потому что appcompat только отображает его собственные чертежи. Если вы хотите использовать другой значок, вы не можете его оттенять стилем. – natario

6

Попробуйте это изменить цвет DrawerArrow

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> 
    <item name="spinBars">true</item> 
    <item name="color">@android:color/white</item> 
</style> 
+0

работал для меня. Благодаря! –

5

Это работает для меня:

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)); 
     } 
Смежные вопросы