【问题标题】:ActionBarDrawerToggle v7 arrow colorActionBarDrawerToggle v7 箭头颜色
【发布时间】:2015-03-07 19:20:28
【问题描述】:

当我尝试更改导航抽屉切换颜色时,只有汉堡更改它,箭头保持她的原始颜色。你可以在这里看到 -

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

我做错了什么?

【问题讨论】:

标签: android android-appcompat android-toolbar


【解决方案1】:

这对我有用:

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

【讨论】:

  • 您可以使用drawerToggle.drawerArrowDrawable.color = ContextCompat.getColor(this, R.color.white) 来避免版本检查
【解决方案2】:

尝试使用

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

【讨论】:

  • Arrow 将她的颜色更改为白色。魔术。
  • 这曾经和我一起工作。尝试将其粘贴到&lt;item name="actionBarStyle"&gt;@style/Your.Custom.ActionBar.Style&lt;/item&gt;
  • 我终于注意到colorControlNormal只有在你使用SDK中提供的箭头图标和支持库(即@drawable/abc_ic_ab_back_mtrl_am_alpha)时才有效。如果您从其他地方导入图标,它将无法正常工作,因为 appcompat 只会为自己的可绘制对象着色。如果您想使用不同的图标,则无法通过样式对其进行着色。
【解决方案3】:

试试这个来改变 DrawerArrow 的颜色

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

【讨论】:

    【解决方案4】:

    您可以使用该方法设置自定义箭头或其他图标

    toolbar.setNavigationIcon(Int drawable resource);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多