android Button上面的英文字符串自动大写的问题解决

转载 2015年12月22日 10:12:15

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

图1:Button 

图2:TextView


这个Button的定义代码如下

[java] view plaincopy
  1. <Button  
  2.           android:id="@+id/addContacts"  
  3.           android:layout_width="match_parent"  
  4.           android:layout_height="wrap_content"  
  5.           android:text="@string/contactList_addContact" />  
TextView的定义代码如下

[java] view plaincopy
  1. <TextView  
  2.        android:layout_width="match_parent"  
  3.        android:layout_height="0dp"  
  4.        android:layout_margin="10dp"  
  5.        android:layout_weight="1"  
  6.        android:gravity="center"  
  7.        android:text="@string/contactList_addContact"  
  8.        android:textSize="24sp" />  

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

[html] view plaincopy
  1. <string name="contactList_addContact">Add</string>  

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

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

[java] view plaincopy
  1. <LinearLayout  
  2.         android:layout_width="fill_parent"  
  3.         android:layout_height="0dp"  
  4.         android:layout_margin="10dp"  
  5.         android:layout_weight="1"  
  6.         android:gravity="center"  
  7.         android:orientation="horizontal" >  
  8.   
  9.         <Button  
  10.             android:id="@+id/btn_cancel"  
  11.             android:layout_width="0dp"  
  12.             android:layout_height="fill_parent"  
  13.             android:layout_weight="1"  
  14.             android:gravity="center"  
  15.             android:text="@string/btn_cancel"  
  16.             android:textColor="@color/black" />  
  17.   
  18.         <Button  
  19.             android:id="@+id/btn_save"  
  20.             android:layout_width="0dp"  
  21.             android:layout_height="fill_parent"  
  22.             android:layout_weight="1"  
  23.             android:gravity="center"  
  24.             android:text="@string/btn_save"  
  25.             android:textColor="@color/black" />  
  26.     </LinearLayout>  

所引用的字符串为:

[html] view plaincopy
  1. <string name="btn_cancel">Cancel</string>  
  2. <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"属性即可,该属性是用来设置是否使用大写字母来呈现文本。


即把代码改成如下:

[java] view plaincopy
  1. <Button  
  2.           android:id="@+id/addContacts"  
  3.           android:layout_width="match_parent"  
  4.           android:layout_height="wrap_content"  
  5.           android:textAllCaps="false"  
  6.           android:text="@string/contactList_addContact" />  

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


        


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

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

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

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



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

今天碰到一个关于Button的问题:android Button上面的英文字符串会自动变成大写,运行的Android 5.1版本,如下图所示:图1:Button 图2:TextView这个Button...
  • qq446282412
  • qq446282412
  • 2015年12月09日 17:54
  • 7264

取消Android中控件text默认为大写的方法

在values/styles.xml文件中添加属性: name="android:textAllCaps">false 取消默认大写的设置。 name="App...
  • hbtj_1216
  • hbtj_1216
  • 2016年07月19日 13:26
  • 2367

Android Studio中的Button英文文本全部显示为大写的解决方法

Android Studio中的Button英文文本全部显示为大写的解决方法
  • u012494298
  • u012494298
  • 2015年04月27日 17:23
  • 15861

Android Button的Text如果是英文,不管大小写默认都会变成大写,改成原样输出

Button的Text如果是英文,不管大小写默认都会变成大写,改成原样输出
  • piqtytu520
  • piqtytu520
  • 2016年06月15日 17:29
  • 1582

在Androd studio 中,TextView设置Text居然都是大写

今天在练习认识点的时候,用TextView 指定text的时候,明明是小写,确都是大写的情况 xml version="1.0" encoding="utf-8"?> RelativeLayou...
  • android_lyp
  • android_lyp
  • 2016年05月09日 12:56
  • 3530

Android5.0Button字体大小写

Android5.0Button字体大小写
  • huyuchaoheaven
  • huyuchaoheaven
  • 2015年07月28日 15:58
  • 3818

Android字符小写转大写,大写转小写

有些需求中可能对输入的字符不论大小写,即输入大小写字符都可以,网上找了下资料,有大神写的算法,个人感觉根据 需求来,能简单就简单来,哈哈 比较简单,把输入的小写转大写,大写转小写,就调用一个方法...
  • Sunjianhua360
  • Sunjianhua360
  • 2016年01月12日 09:55
  • 3007

java用String类转字符串的大小写

java用String类的toUpperCase()和toLowerCase()方法转字符串的大小写 toUpperCase的意思是将所有的英文字符转换为大写字母,如: ...
  • jiangbing0125
  • jiangbing0125
  • 2016年02月19日 11:14
  • 4422

android Button上面的英文字符串自动大写的问题解决

今天碰到一个关于Button的问题:android Button上面的英文字符串会自动变成大写,运行的Android 5.1版本,如下图所示: 图1:Button  图2:Te...
  • u010746364
  • u010746364
  • 2015年12月22日 10:12
  • 1901

Android Studio使用Button等控件的英文内容字符串默认大写

在Android Studio中xml里面添加一个Button、EditText等控件后,内容为英文时候,总是会显示大写,即使你输入的字符串是小写也不行 View中控制字符串大小写的属性是 andr...
  • xiabing082
  • xiabing082
  • 2017年01月04日 11:23
  • 1066
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android Button上面的英文字符串自动大写的问题解决
举报原因:
原因补充:

(最多只允许输入30个字)