编辑框EditText在开发中是经常需要用到的!现总结如下:
1,解决EditText自动获取焦点的问题
editText在界面跳转时,自动获取焦点,会弹起键盘,让人感觉很操蛋:解决如下:
在EditText的父级控件中找一个,设置如下,让父控件获取焦点
android:focusable="true"
android:focusableInTouchMode="true"
2,小注意点
1,隐藏起下划线 background = "@null"
2,设置其实字体颜色 textColorHint = "#000000"
3,设置其EditText光标的属性
// 此有效方法只在api <= 21有效 ,即5.0以下的手机适用
android:textCursorDrawable="@null"
当值为@null时,颜色与textcolor一致,可以自己修改颜色。
android:textCursorDrawable="@drawable/drawable_shape_color"
//drawable_shape_color
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<size android:width="1dp" android:height="16dp"/>
<solid android:color="#ff0000"/>
</shape>
//当api大于21时,可以考虑使用第三方的依赖,地址如下:
https://github.com/rengwuxian/MaterialEditText
4,修改器下划线颜色:
解决方法:
1,styles里apptheme(app主题)添加 @color/primary_blue(其他颜色也行)
2,使用第三方依赖:
https://github.com/rengwuxian/MaterialEditText
https://github.com/xujinyang/BiuEditText
5:使用digist数字监听key来进行过滤edittext的输入
1: 在布局中设置
<EditText
android:id="@+id/editText"
android:inputType="textPassword"
android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678_"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
密码格式且输入必须是digits内限定的字符。通过digits属性可以根据产品需求限定输入字符。
2:在代码中设置
xml中我们可以使用digits属性可以实现字符的限定,代码中EditText提供了setKeyListener(KeyListener )和setFilters(InputFilter[])两个方法。
重点可以看下: https://www.jianshu.com/p/bd4273c12e5b
和搜索 EditText实现字符过滤
6:editText中imeOptions属性详解以及无效处理
软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。比如,在一个搜索中,我们输入要搜索的文本,然后按Enter表示要去搜索了,但是默认的Enter键显示的是“完成”文本,看着不太合适,不符合搜索的语义,如果能显示“搜索”两个字或者显示一个表示搜索的图标多好。事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本
(1)actionUnspecified未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED效果:
(2)actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE效果:
(3)actionGo去往,对应常量EditorInfo.IME_ACTION_GO 效果:
(4)actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH效果:
(5)actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND效果:
(6)actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT效果:
(7)actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE效果:
android:imeOptions="flagNoExtractUi" //使软键盘不全屏显示,只占用一部分屏幕 同时,
这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键
android:imeOptions="actionNone" //输入框右侧不带任何提示
android:imeOptions="actionGo" //右下角按键内容为'开始'
android:imeOptions="actionSearch" //右下角按键为放大镜图片,搜索
android:imeOptions="actionSend" //右下角按键内容为'发送'
android:imeOptions="actionNext" //右下角按键内容为'下一步' 或者下一项
android:imeOptions="actionDone" //右下角按键内容为'完成'
注意:如果设置了 键盘没有变化 那么需要单独加一些其他的属性 配合使用
xml中 属性设置:
1 将singleLine设置为true
2 将inputType设置为text
以上!