我知道可以通过设置here所述的自定义actionOverflowButtonStyle
替换图标。但是,该样式只允许设置不同的drawable和/或background。
相反,我想使用AppCompat提供的标准图标,只需用特定颜色着色,就像抽屉图标/后退按钮可以着色一样通过color
中的drawerArrowStyle
属性。
我尝试过这些方法,据说这些方法曾经起作用:
colorControlNormal
- Toolbar icon tinting on Android textColorPrimary
- MenuItem tinting on AppCompat Toolbar actionBarStyle
并在那里更改colorControlNormal
。但据我所知,它们都不适用于最新的AppCompat - 溢出图标保持其原始颜色(而其他小部件,如TextViews或菜单项中的文本更改)。
现在应该采用不同的方式吗?我没有使用自定义Toolbar
视图,只是默认的AppCompat提供的ActionBar视图。
如何重现:
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中测试。
答案 0 :(得分:2)
如果您追踪Theme.AppCompat.Light.DarkActionBar
主题,则会看到它设置:
<item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
继而来自Base.ThemeOverlay.AppCompat.Dark
,其中包含:
<item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
基本上等于白色:
<color name="primary_text_default_material_dark">#ffffffff</color>
如果您只是继承自Base.Theme.AppCompat.Light
,则您不会遇到此问题,因为它没有设置actionBarTheme
。无论如何,您都可以使用材质属性轻松自定义操作栏。