Andoid 菜单项没办法小写(自动大写)

本文介绍了解决Android ActionBar中菜单项自动变为全大写的问题。通过配置主题样式和资源文件,可以实现菜单项首字母大写其余小写的显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>

解决了!~
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值