本地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
:
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存在一个错误,导致在ICS之前的版本中MenuItem必须大写(https://github.com/JakeWharton/ActionBarSherlock/issues/969)。我已经提交了修补程序,但目前还没有合并。现在您可以使用我的分支:https://github.com/alexander-mironov/ActionBarSherlock/tree/dev,当我的代码合并到主存储库中时,我会更新此答案。
更新:我的修复已合并到主ActionBarSherlock存储库中。