改变ActionBar右侧三个小点的颜色

先介绍一下背景,使用的是Support v7 21+的兼容库来实现 material style

Theme

  


可是出现的效果是

改变ActionBar右侧三个小点的颜色_第1张图片

三个黑色的小点和背景还有前面的文字格格不入,那么怎么解决这个问题尼?搜索了一些解决方案比如

 name="MyCustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:actionOverflowButtonStyle">@style/MyCustomTheme.OverFlowitem>
    <item name="actionOverflowButtonStyle">@style/MyCustomTheme.OverFlowitem>


 name="MyCustomTheme.OverFlow">
    <item name="android:src">@drawable/my_overflow_imageitem>
但是没有效果,突然想起来一个开源项目Sky31Radio,有遇到同样的场景,果然找到了解决方案,问题的关键在于使用了ToolBar来代替Actionbar,那么menu和overflow的样式应该在Toolbar上定义。

下面是解决方案:

actionBar右上角如果是文本的menu,如果想要自定义样式需要在Toolbar中自定义style

 app:theme="@style/AppTheme.ActionBar"

然后在style.xml中



    


AppTheme.ActionBar的继承很重要,之前绕弯一直是没有找到正确的parent,使用darkActionBar,很显然,内部的图标和文字都是白色的,上面的灰色点问题就解决了,然后文本的大小可以使用actionMenuTextAppearance属性自定义,文本加粗改成normal,这样就搞定了预计的效果

改变ActionBar右侧三个小点的颜色_第2张图片




改变ActionBar右侧三个小点的颜色_第3张图片


相关资料:

How To Create A Material Style Action Bar On KitKat And Older Android Versions

Android应用开发中的风格和主题(style,themes)


你可能感兴趣的:(Android布局,原创)