20140621,终于解决了.
参考地址:
http://stackoverflow.com/questions/17044790/android-actionbar-menuitem-lowercase
原文问题:
I want to make MenuItem title in the ActionBar to LowerCase.
我想要标题栏中的菜单显示小写字符.
my menu.xml
<item android:id="@+id/register"
android:title="Register"
android:showAsAction="ifRoom|withText"/>
<item android:id="@+id/unregister"
android:title="Unregister"
android:showAsAction="ifRoom|withText"/>
On the ActionBar it sees "REGISTER" and "UNREGISTER", but I want that it sees as "Register" and "Unregister".
我想要显示 "Register",但实际上显示的是"REGISTER",
Is it possible to make first letter upper and next letters lower at MenuItem? And how I can do that?
有办法让菜单显示小写么?
Solution for native ActionBar implementation:
<?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>
If you are using ActionBarSherlock there are two different approaches:
1) Create boolean resource abs__config_actionMenuItemAllCaps
and set it to false
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="abs__config_actionMenuItemAllCaps">false</bool>
</resources>
2) Or create theme with overriden actionMenuTextAppearance
and use it in 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>
这个问题我查了两天,大概这个方法:
1.程序使用自定义主题
<application android:theme="@style/my_theme" >
2.设置自定义主题的ActionBar的菜单不自动大写
<style name="rav_theme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionMenuTextAppearance">@style/MyMenuTextAppearance</item>
</style>
<style name="MyMenuTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Menu">
<!-- 此处需要 android-14 -->
<item name="android:textAllCaps">false</item>
//
旧帖子:
碰到一个问题,Andoid 菜单栏 标题没办法小写:
MenuItem person = menu.findItem(R.id.menu_person);
person.setTitle("person");
但实际运行时显示的是"PERSON".不知道怎么解决.
追加
当菜单项以以下方式显示时不会自动大写:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
当以以下方式显示时则会自动大写:
<item
android:id="@+id/action_settings2"
android:orderInCategory="100"
android:showAsAction="always|withText"
android:title="@string/action_settings"/>
</menu>
解决了!~