我的Android进阶之旅------>android Button上面的英文字符串自动大写的问题解决

简介:            今天碰到一个关于Button的问题:android Button上面的英文字符串会自动变成大写,运行的Android 5.1版本,如下图所示:图1:Button 图2:TextView这个Button的定义代码如下 TextView的定义代码如下 引用同一个字符串contactList_addContact,字符串内容如下:Add但是Button显示出来就是ADD,而TextView显示出来就是Add。

           今天碰到一个关于Button的问题:android Button上面的英文字符串会自动变成大写,运行的Android 5.1版本,如下图所示:

图1:Button

图2:TextView


这个Button的定义代码如下

  <Button
            android:id="@+id/addContacts"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/contactList_addContact" />
TextView的定义代码如下

 <TextView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:gravity="center"
        android:text="@string/contactList_addContact"
        android:textSize="24sp" />

引用同一个字符串contactList_addContact,字符串内容如下:

<string name="contactList_addContact">Add</string>

但是Button显示出来就是ADD,而TextView显示出来就是Add。之前还真的没遇到过,郁闷。而且其他的Button都是显示正常,如下所示:

这两个按钮定义代码如下:

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btn_cancel"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="@string/btn_cancel"
            android:textColor="@color/black" />

        <Button
            android:id="@+id/btn_save"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="@string/btn_save"
            android:textColor="@color/black" />
    </LinearLayout>

所引用的字符串为:

 <string name="btn_cancel">Cancel</string>
 <string name="btn_save">Save</string>


    好吧,以上就是问题的内容,至于为什么会有这个问题我估计是Android 5.1的SDK把Button的默认Style改了,样式默认把textAllCaps设置为true了,也没有去仔细研究。查看系统选代码:frameworks/base/core/res/res/values/styles_material.xml的第233行,代码如下:

<style name="TextAppearance.Material.Button">
        <item name="textSize">@dimen/text_size_button_material</item>
        <item name="fontFamily">@string/font_family_button_material</item>
        <item name="textAllCaps">true</item>
        <item name="textColor">?attr/textColorPrimary</item>
</style>


可以发现真的是把textAllCaps属性设置为true了。

    下面来说说怎么解决这个问题。只需要在Add按钮的定义中加上一个  android:textAllCaps="false"属性即可,该属性是用来设置是否使用大写字母来呈现文本。


即把代码改成如下:

  <Button
            android:id="@+id/addContacts"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAllCaps="false"
            android:text="@string/contactList_addContact" />

好吧,这样就解决了,改完后的效果图如下:


       


         ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址http://blog.csdn.net/ouyang_peng

====================================================================================


相关文章
|
5月前
|
Android开发
Android Stadio Build 窗口字符串乱码问题
在使用Android Studio过程中,如果遇到Build窗口字符串乱码问题,可以通过编辑`studio.vmoptions`文件添加`-Dfile.encoding=UTF-8`配置并重启Android Studio来解决。
195 1
Android Stadio Build 窗口字符串乱码问题
|
8月前
|
API Android开发
Android高手进阶教程(十五)之---通过Location获取Address的使用!
Android高手进阶教程(十五)之---通过Location获取Address的使用!
82 1
|
7月前
|
XML Java Android开发
15. 【Android教程】按钮 Button/ImageButton
15. 【Android教程】按钮 Button/ImageButton
104 2
|
7月前
|
存储 算法 Java
Android 进阶——代码插桩必知必会&ASM7字节码操作
Android 进阶——代码插桩必知必会&ASM7字节码操作
328 0
|
8月前
|
缓存 网络协议 Java
挑战全网,史上最全Android开发进阶,跳槽复习指南(1),掌握这6大技能体系
挑战全网,史上最全Android开发进阶,跳槽复习指南(1),掌握这6大技能体系
|
8月前
|
XML Android开发 数据格式
Android下自定义Button样式
Android下自定义Button样式
55 3
|
8月前
|
算法 安全 Java
2024年Android最新知识体系最强总结(全方面覆盖Android知识结构,BAT面试&学习进阶)
2024年Android最新知识体系最强总结(全方面覆盖Android知识结构,BAT面试&学习进阶)
|
8月前
|
消息中间件 缓存 架构师
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
|
XML Android开发 数据格式
Android中利用shape属性自定义设置Button按钮
Android中利用shape属性自定义设置Button按钮
278 0
|
XML Android开发 数据格式
Android Button 属性介绍与使用
Android Button 属性介绍与使用
331 0