Android Textview和Edittext文本选中样式修改实战
来源:互联网 发布:小米手机查看网络制式 编辑:程序博客网 时间:2024/06/06 12:42
修改Textview和Edittext文本选中样式
今天接到一个任务,因为现在的上线APP的搜索框在文本被选中的时候,高亮背景色和指示器的颜色与主题颜色相同,因此导致了用户使用上的困难,并且文本功能菜单也和文本框太靠近导致指示器可触面积太小,所以需要对样式进行修改。
我隐约记得源码中有相关属性可以修改这些bug,因此我翻看了EditText的源码,因为edittext继承自Textview,于是就去TextView里面查找。
public class EditText extends TextView
在TextView中发现了文本选中指示器的变量,变量名很明显
int mTextSelectHandleLeftRes; int mTextSelectHandleRightRes; int mTextSelectHandleRes; int textColorHighlight = 0; case com.android.internal.R.styleable.TextView_textSelectHandleLeft: mTextSelectHandleLeftRes = a.getResourceId(attr, 0); break; case com.android.internal.R.styleable.TextView_textSelectHandleRight: mTextSelectHandleRightRes = a.getResourceId(attr, 0); break; case com.android.internal.R.styleable.TextView_textSelectHandle: mTextSelectHandleRes =
mTextSelectHandleLeftRes 左边指示器资源文件
mTextSelectHandleRightRes 右边指示器资源文件
mTextSelectHandleRes 垂直指示器资源文件
textColorHighlight 文本选中高亮颜色
有了这四个属性就可以对文本选中进行改造了,自定义style应用于editext上,对其设置样式,同时为了让菜单栏下偏移不至于遮挡住指示器,可以适当调整edittext的高度,我这里设置为match_parent。
<style name="SearchEditTextStyle" parent="Widget.AppCompat.EditText"> <item name="android:background">@null</item> <item name="android:textColorHighlight">#28BEA0</item> <item name="android:textSelectHandle">@drawable/selecthandle</item> <item name="android:textSelectHandleLeft"> @drawable/selecthandleleft</item> <item name="android:textSelectHandleRight"> @drawable/selecthandleright </item></style>
最后就得到了我们想要的样式。
转载请注明链接和署名,违者必究。
阅读全文
0 0
- Android Textview和Edittext文本选中样式修改实战
- android 修改文本选中默认样式
- Android TextView和EditText设置文本颜色
- android:TextView设置文本样式和超链接
- android 改变TextView和EditText文字选中效果
- android 改变TextView和EditText文字选中效果
- android 改变TextView和EditText文字选中效果
- Android中获取TextView和EditText中的文本
- Android中获取TextView和EditText中的文本
- Android 系列 6.16使用TextView和EditText显示文本字段
- Android中获取TextView和EditText中的文本
- Android中获取TextView和EditText中的文本
- android-TextView和EditText
- Android-TextView和EditText
- 让android中Textview支持丰富的文本和样式
- C#修改RichTextBox选中文本样式
- 修改元素文本的默认选中样式
- 修改用户选中文本的样式
- java.lang.ClassCastException: org.model.Xsb_$$_javassist_0 cannot be cast to...
- Node.js从入门到放弃
- beanstalkd基础使用(C/C++语言)
- C++ 类的多重继承
- Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构。其中一种方式
- Android Textview和Edittext文本选中样式修改实战
- Javascript基础入门
- node.js stream
- Git学习-->GitLab如何修改时区?
- <02读书回忆录
- java密码框明文显示密码
- JVM六:查找最最耗cpu的线程或线程时间最长并定位代码
- 关于Postgresql默认端口5432你所不知道的一点
- ubuntu16.04:cuda8.0+python3.5+tensorflow1.4+opencv3.2安装说明