Android中键盘输入是用户输入交互的最常用最直接的手段,关于键盘输入,有几点可以提高用户使用体验。
第一:弹出键盘整体页面上移,使键盘不遮挡控件,需要在AndroidManifest设置对应Activity的windowSoftInputMode属性
stateVisible
设置为这个属性,可以将软键盘召唤出来,即使在界面上没有输入框的情况下也可以强制召唤出来
adjustResize
这个属性表示Activity的主窗口总是会被调整大小,从而保证软键盘显示空间。
效果如下图所示:
activity>
第二:页面中有多个输入控件的时候,输入控件焦点的切换需要用户点击控件切换的话,使用体验不是很好,可以将键盘的回车键改成“下一步”按钮,直接将光标焦点切换到下一个输入控件。在布局文件中设置
android:imeOptions="actionNext"android:singleLine="true"
即可
如下图所示
第三:提交表单时,可以点击提交按钮提交,也可以最后一个EditText获取焦点时设置键盘的回车键为发送键,这样点击了键盘的回车键就自动处理了提交表单的逻辑。
设置也很简单,输入控件布局文件添加两个属性如下:
android:imeOptions="actionSend"android:singleLine="true"
在Activity中检测到键盘回车键是否按下,从而处理响应的逻辑
mPassWord.setOnKeyListener(newView.OnKeyListener() {
@Overridepublic booleanonKey(Viewv, intkeyCode, KeyEventevent) {
if(keyCode==KeyEvent.KEYCODE_ENTER) {((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(LoginActivity.this.getCurrentFocus()
.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
if(TextUtil.isEmpty(mPassWord.getText().toString())){
ToastUtil.getInstance().show("请输入密码");
}else{
login(mUserName.getText().toString(),mPassWord.getText().toString());
}
}
return false;
}
}); 如下图所示:
第四:将回车键改成搜索按键,布局文件EditText添加如下两个属性:
android:singleLine="true"android:imeOptions="actionSearch"
回车键的点击检测和上边的一样
示例图如下: