Button英文字符自动大写的问题

原创 2016年05月31日 00:56:31

问题

如题

原因分析

以我项目中使用Theme.AppCompat.Light.DarkActionBar主题为例。跟踪源码可发现,该主题中有:

<style name="Base.TextAppearance.AppCompat.Button">
        <item name="android:textSize">@dimen/abc_text_size_button_material</item>
        <item name="textAllCaps">true</item>
        <item name="android:textColor">?android:textColorPrimary</item>
    </style>

关键的原因在于:
<item name="textAllCaps">true</item>
当然,如果细看的话,会发现不止是Button这一控件的该属性被设置成了true。

解决方法

由上面的原因分析便可简单的找到解决方法,这里简单提及两种方式:

  1. 修改style.xml如:
 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="textAllCaps">false</item>
    </style>

将textAllCaps属性设置为false。如此,整个项目中的相关控件的(字符)文本都可避免被自动转换为大写。
2. 在具体控件中重置该属性为false,如:

<Button
    android:id="@+id/btn_answer1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAllCaps="false"
    />

这方法唯一不足的是需要对每个相关控件都设置该属性。

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

Android 开发关于Button或TextView控件英文字符全部显示大小写问题

Android 开发关于Button或TextView控件英文字符全部显示大小写问题在较新的 sdk 版本中,开发中我们会看到按钮的英文显示全为大写的。...
  • KjunChen
  • KjunChen
  • 2016年08月05日 15:44
  • 4930

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

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

英文字符和汉字自动换行和不换行的设置

默认设置,一长串英文字符(中间没空格)不会自动换行,比 如:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa不能处理自动换行,而汉字字符却可以自动换行。原...
  • lucky__jin
  • lucky__jin
  • 2011年03月10日 14:26
  • 10466

英文字符和汉字自动换行和不换行的设置(个人收藏)

默认设置,一长串英文字符(中间没空格)不会自动换行,比 如:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa不能处理自动换行,而汉字字符却可以自动换行。原因...
  • u010124908
  • u010124908
  • 2014年02月19日 09:59
  • 550

Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示

如果还为了这个纠结,就直接看看后面的解说,做决定吧。 一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的。  sql server中的varchar和Nva...
  • Andeewu
  • Andeewu
  • 2013年11月25日 22:03
  • 671

Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示

如果还为了这个纠结,就直接看看后面的解说,做决定吧。 一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的。  sql server中的varchar和Nva...
  • hb0746
  • hb0746
  • 2011年12月28日 18:05
  • 1173

VC++数字、英文字符及手写识别实例

  • 2011年05月23日 16:55
  • 167KB
  • 下载

Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示

如果还为了这个纠结,就直接看看后面的解说,做决定吧。 一般如果用到中文或者其它特殊字符,我就会使用n开头的类型,否则的话直接使用var开头的。  sql server中的varchar和Nva...
  • cai_huan_123
  • cai_huan_123
  • 2015年03月26日 11:19
  • 602

VC++数字、英文字符、汉字及手写识别实例.rar

  • 2009年04月08日 12:39
  • 121KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Button英文字符自动大写的问题
举报原因:
原因补充:

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