我们知道要想实现如上效果,需要从Theme下手。但如果我们是继承自“Theme.AppCompat.Light.DarKActionbar”,通过设置属性“actionMenuTextColor”是可以改变actionbar上menu(即AA)字体颜色的,通过设置属性“android:textColor”是可以改变溢出menu(bb)字体颜色,但对于溢出menu的背景跟overflowbutton(即actionbar右边的三个点)的颜色是无法定制的(非黑即白)。
Google官方在推出Materail Design时已经不再提倡使用Actionbar,推荐使用Toolbar替代。因此,我在次处使用的是Toolbar,主题当然也就使用“Theme.AppCompat.Light.NoActionBar”,下面是我style文件代码设置
'''
<style name="mainStyle" parent="AppTheme">
<item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
<!--溢出栏字体颜色-->
<item name="android:textColor">#ff5555</item>
<!--menu字体颜色-->
<item name="actionMenuTextColor">#ff5555</item>
<!--overflowbutton颜色-->
<item name="android:textColorSecondary">#ff5555</item>
<!--title颜色-->
<item name="titleTextColor">#ff5555</item>
</style>
<!--溢出菜单样式 -->
<style name="OverflowMenuStyle" parent="@style/Widget.AppCompat.Light.PopupMenu.Overflow">
<item name="overlapAnchor">false</item>
<item name="android:dropDownWidth">wrap_content</item>
<item name="android:popupBackground">@android:color/holo_green_light</item>
<item name="android:dropDownHorizontalOffset">0dp</item>
</style>
''''''
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:actionBarSize"
app:title="Title"
android:background="?colorPrimary"
app:theme="@style/toolbarStyle"/>
'''
短短几句style属性设置即可实现随心所欲的menu颜色设置。如果非得使用actionbar的话overflowbutton的颜色以及溢出menu的颜色、背景是无法定制的(非黑即白),仅与Theme明暗色调有关。
网友评论