android Button上面的英文字符串自动大写的问题解决
来源:互联网 发布:淘宝上传宝贝描述模版 编辑:程序博客网 时间:2024/04/30 02:14
今天碰到一个关于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
- 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
====================================================================================
- android Button上面的英文字符串自动大写的问题解决
- 我的Android进阶之旅------>android Button上面的英文字符串自动大写的问题解决
- Android中Button上面的英文字符串自动大写的问题解决
- Android Studio Button英文字符自动变成大写的问题
- Button英文字符自动大写的问题
- Android-Button Text 英文自动大写
- 解决 Button 和 TabLayout 英文自动大写的问题
- Android Studio使用Button等控件的英文内容字符串默认大写
- Android Studio使用Button等控件的英文内容字符串默认大写
- android 国际化后button 上的英文变成了大写
- Button英文字符自动大写
- 解决Android Button 字母自动全部大写的问题
- 解决Android Button 字母自动全部大写的问题
- Android Studio中Button等控件的Text属性英文默认大写的解决方法
- Android Studio中的Button英文文本全部显示为大写的解决方法
- Android Button的Text如果是英文,不管大小写默认都会变成大写,改成原样输出
- Button 英文大写问题
- Android Studio中Button ,Textview中字体自动变成大写的问题
- java有几种对象(PO,VO,DAO,DTO,BO,POJO详解)
- 求集合的交集
- Java零基础入门系列08--异常[参考正文顶部目录]
- Microsoft Outlook 漏洞:可允许远程代码执行
- shell文本过滤编程(九):sed命令
- android Button上面的英文字符串自动大写的问题解决
- 通过自定义的URL Scheme启动你的App
- cout缓冲区管理
- js中数组是否包含另一个数组检测的方法
- 仿5sing图片轮播,向5Sing致敬
- SecureCRT 绝佳配色方案, 保护你的眼睛
- 输入日期判断某年第几天
- Oracle数据库SQL语句操作记录
- 【ASP.NET】程序错误:error CS2001: Source file