【发布时间】:2015-08-10 03:12:37
【问题描述】:
我知道可以通过设置自定义actionOverflowButtonStyle 来替换图标,如here 所述。但是,该样式只允许设置不同的可绘制对象和或/背景。
相反,我想使用 AppCompat 提供的 标准 图标,只需将其着色为特定颜色,就像抽屉图标/后退按钮可以着色一样通过drawerArrowStyle 中的color 属性。
我已经尝试过这些方法,据报道它们曾经有效:
- 设置
colorControlNormal-- Toolbar icon tinting on Android - 在主题中设置
textColorPrimary-- MenuItem tinting on AppCompat Toolbar - 在此处设置自定义
actionBarStyle并更改colorControlNormal。
但据我所知,它们都不能与最新的 AppCompat 一起使用——溢出图标保持其原始颜色(而其他小部件,例如 TextViews 或菜单项中的文本 做 )。
现在应该以不同的方式进行吗?我没有使用自定义的Toolbar 视图,只是默认的AppCompat 提供的、类似ActionBar 的视图。
如何重现:
- 创建一个默认的 Android Studio 项目,最低 SDK 版本 = 9。
- 这会自动包含一个空白活动和一个带有单个菜单项“设置”的菜单资源,
app:showAsAction="never"表示它将显示在溢出菜单中。 -
最后,自定义
styles.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>
您会注意到这两个属性都不会影响溢出菜单图标的颜色。在装有 Android 5.1.1 的 Nexus 5 中测试。
【问题讨论】:
-
mcve 请
-
@karaokyo 完成了,尽管它非常容易重现——一个默认的新 Android Studio 项目就足够了。
-
哦,好的,这是
DarkActionBar强制白色覆盖。不要使用DarkActionBar?