Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/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 如何着色AppCompat r22.1操作栏溢出图标?_Android_Android Appcompat - Fatal编程技术网

Android 如何着色AppCompat r22.1操作栏溢出图标?

Android 如何着色AppCompat r22.1操作栏溢出图标?,android,android-appcompat,Android,Android Appcompat,我知道可以通过设置自定义的actionOverflowButtonStyle来替换图标。但是,该样式仅允许设置不同的可绘制和/或背景 相反,我想使用AppCompat提供的标准图标,只是使用特定颜色对其着色,就像抽屉图标/后退按钮可以通过drawerRowStyle中的color属性着色一样 我曾尝试过这些方法,据报道这些方法曾经奏效: 设置colorControlNormal-- 在主题中设置textColorPrimary—— 设置自定义的actionBarStyle并在那里更改color

我知道可以通过设置自定义的
actionOverflowButtonStyle
来替换图标。但是,该样式仅允许设置不同的可绘制和/或背景

相反,我想使用AppCompat提供的标准图标,只是使用特定颜色对其着色,就像抽屉图标/后退按钮可以通过
drawerRowStyle
中的
color
属性着色一样

我曾尝试过这些方法,据报道这些方法曾经奏效:

  • 设置
    colorControlNormal
    --
  • 在主题中设置
    textColorPrimary
    ——
  • 设置自定义的
    actionBarStyle
    并在那里更改
    colorControlNormal
但据我所知,它们都不能与最新的AppCompat一起工作——溢出图标保持其原始颜色(而其他小部件,如TextView或菜单项中的文本确实会发生变化)

现在是否应该采取不同的做法?我使用的不是自定义的
工具栏
视图,而是提供的默认AppCompat,与ActionBar类似


如何复制:

  • 创建一个默认的Android Studio项目,最低SDK版本=9
  • 这将自动包括一个空白活动和一个菜单资源,其中包含一个菜单项“设置”,并带有
    app:showAsAction=“never”
    ,这意味着它将显示在溢出菜单中
  • 最后,定制
    style.xml
    文件。例如:

    <resources>
        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <item name="colorPrimary">#008888</item>
            <item name="colorControlNormal">#ff0000</item>
            <item name="android:textColorPrimary">#ff0000</item>
        </style>
    </resources>
    
    
    #008888
    #ff0000
    #ff0000
    

  • 您会注意到这两个属性都不影响溢出菜单图标的颜色。在带有Android 5.1.1的Nexus 5中测试。

    如果跟踪
    主题.AppCompat.Light.darkaActionBar
    主题,您会看到它设置:

    <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
    
    基本上等于白色:

    <color name="primary_text_default_material_dark">#ffffffff</color>
    
    #ffffffff
    


    如果您只是继承自
    Base.Theme.AppCompat.Light
    ,则不会遇到此问题,因为它没有设置
    actionBarTheme
    。您可以使用材质属性轻松自定义操作栏。

    please@karaokyo完成了,尽管它非常容易复制——一个默认的新Android Studio项目就足够了。哦,好吧,现在是
    DarkActionBar
    强制使用白色覆盖。不要使用
    DarkActionBar
    ?谢谢,我会调查一下--我曾尝试过提供
    actionBarStyle
    ,但没有
    actionBarTheme
    <color name="primary_text_default_material_dark">#ffffffff</color>