经常会遇到对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样式,可以参照
今天在网上看到了另一个修改方法,如下
<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还是不起作用