Menu-actionBarMenu字体颜色修改

经常会遇到对menu字体颜色进行修改的情况,今天就遇到了一个。就是在action上有一个menu是黑色的,想要改成白色。方法如下

 <style name="Email.Theme" parent="@android:style/Theme.Funui">
        <item name="android:windowFullscreen">true</item>
        <item name="android:actionBarStyle">@style/actionbar_def_style</item>
        <item name="android:actionModeStyle">@style/actionmode_def_style</item>
        <item name="android:checkboxStyle">@style/Email.Theme.checkbox</item>
<!--添加这一条属性就行了-->
<item name="android:actionMenuTextColor">@color/action_menu_text_color_funui</item> <item name="android:alertDialogTheme">@style/Email.Theme.Dialog.Alert</item> </style>

解释:

所谓的actionBarMenu 其实就是普通的menu,只不过它增加了一条属性,就是让android:showAsAction="always|ifroom"

其他的跟普通的menu也就没有区别了。不过,这个<item name="android:actionMenuTextColor">@color/action_menu_text_color_funui</item>

似乎仅仅能改变这个状态下的menu

 如果想更改普通的menu样式,可以参照

menu-普通menu弹出框样式

今天在网上看到了另一个修改方法,如下

<style name="funui.theme">
<item name="actionMenuTextAppearance">@android:style/TextAppearance.Holo.Widget.ActionBar.Menu</item>
</style>

    <style name="TextAppearance.Holo.Widget.ActionBar.Menu"
           parent="TextAppearance.Holo.Small">
        <item name="android:textSize">12sp</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">?android:attr/actionMenuTextColor</item>
        <item name="android:textAllCaps">@android:bool/config_actionMenuItemAllCaps</item>
    </style>

从上面的代码我们能看出来,其实actionMenuTextAppearance 最终调用的还是actionMenuTextColor 当然,前者能够设置的属性更多。它几乎能设置字体的所有属性

确定了一点就是,它只能够更改actionbar类型的menu。对于普通的menu还是不起作用

原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_menu_15020517.html