开发中少不了对EditText控件的使用,弹出的软键盘右下角有个回车键,这个回车键有时显示的是“搜索”,有时显示的是“do”,这个可以在EditText中进行配置,通过android:imeOptions=""
属性实现想要的效果。
从上图中可以看到通过这个属性能配置很多不同的样式,一一介绍一下,举一个应用场景:
1、actionSearch——字面意思就是搜索,这种配置使得键盘左下方变为“搜索”字样或搜索图标,在一些搜索框场景经常用到;
2、actionSend——字面意思就是发送,这种配置one使得键盘左下方变为“发送”字样或发送图标,在一些聊天页面输入框经常用到;
3、actionDone——字面意思就是执行,这种配置使得键盘左下方变为回车图标;
4、actionGo——字面意思就是开始、出发,这种配置使得键盘左下方变为“开始”字样或开始图标;
5、actionNext——字面意思就是下一个,这种配置使得键盘左下方变为“下一步”字样或图标,在有多个输入框的地方经常会用到;
6、actionNone——字面意思就是啥也没有,这种配置使得键盘左下方变为回车图标;
7、actionPrevious——字面意思就是前一个,这种配置使得键盘左下方变为回车图标,如果存在多个输入框,那么点击光标则会跳到上一个输入框,和actionNext相反的效果;
8、actionUnspecified——字面意思就是没有特殊意义、未指定,这种配置使得键盘左下方回车图标;
具体样式效果,可以在用的时候设置不同的action试试,上面看了属性设置,下面来看看不同设置的点击响应事件:
binding.searchEt.setOnEditorActionListener { v, actionId, event ->
/*
EditorInfo.IME_ACTION_SEARCH、EditorInfo.IME_ACTION_SEND等分别对应EditText的imeOptions属性
*/
if (actionId == EditorInfo.***) {
//TODO 回车键按下时要执行的操作
...
return@setOnEditorActionListener true
}
return@setOnEditorActionListener false
}
以上就完成了对软键盘回车键的改变,并对回车键点击事件的响应,完成自己业务上的逻辑就行。
踩坑一:设置android:imeOptions
属性时还得添加属性android:singleLine="true"
,否则不生效,此时点击回车键是执行的换行。
总结:写这篇文章出于两点目的,一是记录使用方法,加深印象;二是在用的过程中踩了个坑,所以记录一下。