開發(fā)中少不了對EditText控件的使用,彈出的軟鍵盤右下角有個回車鍵,這個回車鍵有時顯示的是“搜索”,有時顯示的是“do”,這個可以在EditText中進(jìn)行配置,通過android:imeOptions=""屬性實(shí)現(xiàn)想要的效果。

從上圖中可以看到通過這個屬性能配置很多不同的樣式,一一介紹一下,舉一個應(yīng)用場景:
1、actionSearch——字面意思就是搜索,這種配置使得鍵盤左下方變?yōu)椤八阉鳌弊謽踊蛩阉鲌D標(biāo),在一些搜索框場景經(jīng)常用到;
2、actionSend——字面意思就是發(fā)送,這種配置one使得鍵盤左下方變?yōu)椤鞍l(fā)送”字樣或發(fā)送圖標(biāo),在一些聊天頁面輸入框經(jīng)常用到;
3、actionDone——字面意思就是執(zhí)行,這種配置使得鍵盤左下方變?yōu)榛剀噲D標(biāo);
4、actionGo——字面意思就是開始、出發(fā),這種配置使得鍵盤左下方變?yōu)椤伴_始”字樣或開始圖標(biāo);
5、actionNext——字面意思就是下一個,這種配置使得鍵盤左下方變?yōu)椤跋乱徊健弊謽踊驁D標(biāo),在有多個輸入框的地方經(jīng)常會用到;
6、actionNone——字面意思就是啥也沒有,這種配置使得鍵盤左下方變?yōu)榛剀噲D標(biāo);
7、actionPrevious——字面意思就是前一個,這種配置使得鍵盤左下方變?yōu)榛剀噲D標(biāo),如果存在多個輸入框,那么點(diǎn)擊光標(biāo)則會跳到上一個輸入框,和actionNext相反的效果;
8、actionUnspecified——字面意思就是沒有特殊意義、未指定,這種配置使得鍵盤左下方回車圖標(biāo);
具體樣式效果,可以在用的時候設(shè)置不同的action試試,上面看了屬性設(shè)置,下面來看看不同設(shè)置的點(diǎn)擊響應(yīng)事件:
binding.searchEt.setOnEditorActionListener { v, actionId, event ->
/*
EditorInfo.IME_ACTION_SEARCH、EditorInfo.IME_ACTION_SEND等分別對應(yīng)EditText的imeOptions屬性
*/
if (actionId == EditorInfo.***) {
//TODO 回車鍵按下時要執(zhí)行的操作
...
return@setOnEditorActionListener true
}
return@setOnEditorActionListener false
}
以上就完成了對軟鍵盤回車鍵的改變,并對回車鍵點(diǎn)擊事件的響應(yīng),完成自己業(yè)務(wù)上的邏輯就行。
踩坑一:設(shè)置android:imeOptions屬性時還得添加屬性android:singleLine="true",否則不生效,此時點(diǎn)擊回車鍵是執(zhí)行的換行。
總結(jié):寫這篇文章出于兩點(diǎn)目的,一是記錄使用方法,加深印象;二是在用的過程中踩了個坑,所以記錄一下。