原生 ActionBar 实现的解决方案:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="android:Theme.Holo">
<item name="android:actionMenuTextAppearance">@style/MyMenuTextAppearance</item>
</style>
<style name="MyMenuTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Menu">
<item name="android:textAllCaps">false</item>
</style>
</resources>
如果您使用的是 ActionBarSherlock,则有两种不同的方法:
1)创建布尔资源abs__config_actionMenuItemAllCaps
并将其设置为false
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="abs__config_actionMenuItemAllCaps">false</bool>
</resources>
2)或创建主题覆盖actionMenuTextAppearance
并使用它AndroidManifest.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="Theme.Sherlock">
<item name="actionMenuTextAppearance">@style/MyMenuTextAppearance</item>
<item name="android:actionMenuTextAppearance">@style/MyMenuTextAppearance</item>
</style>
<style name="MyMenuTextAppearance" parent="TextAppearance.Sherlock.Widget.ActionBar.Menu">
<item name="android:textAllCaps">false</item>
</style>
</resources>
请注意:ActionBarSherlock 中存在一个错误,它强制 MenuItem 在 ICS 之前为大写(https://github.com/JakeWharton/ActionBarSherlock/issues/969)。我已经提交了补丁,但目前没有合并。现在您可以使用我的 fork:https ://github.com/alexander-mironov/ActionBarSherlock/tree/dev ,当我的代码合并到主存储库中时,我将更新此答案。
更新:我的修复已合并到主 ActionBarSherlock 存储库中。