Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更改汉堡菜单图标的颜色?_Android_Hamburger Menu - Fatal编程技术网

Android 如何更改汉堡菜单图标的颜色?

Android 如何更改汉堡菜单图标的颜色?,android,hamburger-menu,Android,Hamburger Menu,首先,我想澄清一下,我愿意更改汉堡包导航菜单图标本身的颜色,而不是导航菜单中的图标 我遵循了本教程: 因此,我在应用程序栏中有一个导航菜单图标(汉堡包)。问题:图标为黑色(可绘制向量的默认颜色) 我创造了一种新的风格: <!-- Hamburger menu --> <style name="MyDrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle"> <item name="color"

首先,我想澄清一下,我愿意更改汉堡包导航菜单图标本身的颜色,而不是导航菜单中的图标

我遵循了本教程:

因此,我在应用程序栏中有一个导航菜单图标(汉堡包)。问题:图标为黑色(可绘制向量的默认颜色)

我创造了一种新的风格:

<!-- Hamburger menu -->
<style name="MyDrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="color">@color/colorTextTitle</item>
</style>

@颜色/颜色文本标题
然后,我将此样式添加到我的主题中:

<style name="customTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Hamburger menu -->
    <item name="drawerArrowStyle">@style/MyDrawerArrowToggle</item>
</style>

@样式/MyDrawarRowToggle
确保此样式是我的应用程序在清单中使用的样式:

<application>
    android:theme="@style/customTheme"
</application>

android:theme=“@style/customTheme”
并将此主题应用于工具栏(以防万一…)


手术结果:所有这些都没有任何效果。汉堡包图标仍然是黑色的


你们谁能向我解释一下我犯了什么错误,以及我如何改变这种颜色?

我建议你们看看谷歌/安卓工作室提供的示例

  • 创建一个名为
    测试汉堡的新项目
    (名称可选;-))
  • 选择“抽屉”模板。我没有选中“使用AndroidX”,但应该可以
  • 我选择了MinAPI 23/Target 28
  • 拥有示例应用程序后,运行它,观察工具栏是否为绿色,文本/色调是否为白色

    打开
    values/styles.xml
    (不是v21版本,f**c那些):)

    这是现有主题的外观:

        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
    
    
    @颜色/原色
    @颜色/原色暗
    @颜色/颜色重音
    
    您需要将此行添加到其中:
    @style/DrawerArrowStyle

    当然,还要定义样式:

        <style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
            <item name="spinBars">true</item>
            <item name="color">@android:color/holo_red_dark</item>
        </style>
    
    
    真的
    @安卓:彩色/全息红/暗
    
    总而言之,您的风格现在应该如下所示:

        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</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>
    
    
    @颜色/原色
    @颜色/原色暗
    @颜色/颜色重音
    @样式/抽屉箭头样式
    真的
    @安卓:彩色/全息红/暗
    
    运行时,它看起来像:


    将其用作工具栏的样式

    <style name="Toolbar">
        <item name="android:textColorPrimary">@color/colorAccent</item>
        <item name="android:textColor">@color/colorAccent</item>
        <item name="android:textColorSecondaryInverse">@color/colorAccent</item>
        <item name="android:textColorSecondary">@color/colorAccent</item>
    </style>
    
    
    @颜色/颜色重音
    @颜色/颜色重音
    @颜色/颜色重音
    @颜色/颜色重音
    

    我希望这能有所帮助

    谢谢您的详细回答。我就是这么做的,而且很有效。然后,我继续使用API lvl 21(我在项目中使用的那个)再次这样做,它仍然有效(所以至少我知道这不是问题所在)。我会继续处理这个汉堡包项目,并尝试找到正确的方法来实现我的主题。确保在样式中使用正确的父项,这一点非常重要:
    parent=“@style/Widget.AppCompat.drawerrowtoggle”
    parent=“Widget.AppCompat.drawerrowtoggle”
    <style name="Toolbar">
        <item name="android:textColorPrimary">@color/colorAccent</item>
        <item name="android:textColor">@color/colorAccent</item>
        <item name="android:textColorSecondaryInverse">@color/colorAccent</item>
        <item name="android:textColorSecondary">@color/colorAccent</item>
    </style>