【问题标题】:Changing the hamburger icon color in navigation drawer更改导航抽屉中的汉堡图标颜色
【发布时间】:2020-01-09 20:36:27
【问题描述】:

导航抽屉的汉堡图标颜色没有改变。默认为黑色。我想把它改成@color/gold。它适用于低于 21 的 API。请帮助我。

这是我正在使用的样式。

<style name="AppTheme.NoActionBar" >
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <item name="windowNoTitle">true</item>
    <item name="android:textColorPrimary">@color/gold</item>
    <item name="actionMenuTextColor">@color/gold</item>
    <item name="android:actionMenuTextColor">@color/gold</item>
    <item name="colorControlNormal">@color/gold</item>
</style>

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

</style>

感谢钢铁侠的回答

改变了整个主题

  <style name="MyMaterialTheme" parent="MyMaterialTheme.Base">

</style>

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar" >
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorSecondary">@color/booking</item>
    <item name="windowActionBar">false</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <item name="windowNoTitle">true</item>
    <item name="android:textColorPrimary">@color/booking</item>
    <item name="actionMenuTextColor">@color/booking</item>
    <item name="android:actionMenuTextColor">@color/booking</item>
    <item name="colorControlNormal">@color/booking</item>
</style>

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

</style>

【问题讨论】:

标签: android xml


【解决方案1】:

在您的styles.xml 中创建样式并输入以下代码

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

然后像这样添加主题:

< item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

【讨论】:

  • 我一直在到处搜索,而且效果很好。
【解决方案2】:

你可以在下面给你的图标设置颜色

Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_menu, null);
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable, Color.GOLD);
actionBar.setHomeAsUpIndicator(drawable);

【讨论】:

  • 我可以通过主题更改它吗
  • @Sreepulari 你也可以通过主题来实现,但你必须将主题从 NoActionBar 更改为某个 ActionBar 主题并应用它。
  • @Sreepulari 很高兴知道这一点。
【解决方案3】:

非常简单,您只需通过编程方式添加以下代码行...

actionBarDrawerToggle.getDrawerArrowDrawable()
                     .setColor(getResources().getColor(R.color.white));

完成!

【讨论】:

    【解决方案4】:

    将此代码写入您的价值观/风格

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:textColorPrimary">@color/white</item>
        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    
    </style>
    
    <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/white</item>
    </style>
    

    【讨论】:

      猜你喜欢
      • 2016-02-02
      • 2018-11-07
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 2018-08-21
      • 2017-01-21
      • 2015-10-23
      • 2022-08-15
      相关资源
      最近更新 更多