editText的使用及其注意事项点

编辑框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

以上!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值