Android Studio Button英文字符自动变成大写的问题
2016-05-16 17:02
731 查看
发现问题
在5.0手机上调试的时候,发现Button上的英文字符全部变成了大写,5.0以下系统是正常的。布局文件中:
界面显示:
分析问题
1.到这里只能从源码角度去分析问题了。在AndroidXRef上看了5.0系统TextView的源码(因为Button是继承TextView的,而且Button源码也没几行,直接看TextView就可以了。)在TexViw源码里面发现了两处关键的代码:第一处:
第二处:
2.到这里推测是因为5.0主题引起的,于是找了下主题文件,发现5.0里面frameworks/base/core/res/res/values/styles_material.xml
解决方法:
1.在布局文件Button下增加android:textAllCaps="false"
2.在代码中,
mButton.setTransformationMethod(null)
3.既然是主题引起的,我们可以自定义Button主题
<style name="MyButton" parent="Widget.AppCompat.Button"> <item name="android:textAllCaps">false</item> </style>
4.自定义Button
public class MyButton extends Button { public Button(Context context, AttributeSet attrs) { super(context, attrs); setSupportAllCaps(false); } public Button(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setSupportAllCaps(false); } }
参考:
http://stackoverflow.com/questions/26958909/why-is-my-button-text-coerced-to-all-caps-on-lollipop原文链接:
http://blog.liangruijun.com/2016/01/16/Android%E5%A1%AB%E5%9D%91%EF%BC%9AAndroid5.0%20Button%E8%8B%B1%E6%96%87%E5%AD%97%E7%AC%A6%E8%87%AA%E5%8A%A8%E5%8F%98%E6%88%90%E5%A4%A7%E5%86%99%E7%9A%84%E9%97%AE%E9%A2%98/
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories