Android开发中利用imeOptions属性将键盘回车键改成搜索等功能键【提高用户输入体验】

Android中键盘输入是用户输入交互的最常用最直接的手段,关于键盘输入,有几点可以提高用户使用体验。

第一:弹出键盘整体页面上移,使键盘不遮挡控件,需要在AndroidManifest设置对应Activity的windowSoftInputMode属性

stateVisible

    设置为这个属性,可以将软键盘召唤出来,即使在界面上没有输入框的情况下也可以强制召唤出来

adjustResize

    这个属性表示Activity的主窗口总是会被调整大小,从而保证软键盘显示空间。

效果如下图所示:


<activity
    android:name=".activity.LoginActivity"
    android:windowSoftInputMode="stateVisible|adjustResize"
    android:label="@string/title_activity_login"
    android:screenOrientation="portrait"></activity>
第二:页面中有多个输入控件的时候,输入控件焦点的切换需要用户点击控件切换的话,使用体验不是很好,可以将键盘的回车键改成“下一步”按钮,直接将光标焦点切换到下一个输入控件。在布局文件中设置

android:imeOptions="actionNext"
android:singleLine="true"
即可

如下图所示


第三:提交表单时,可以点击提交按钮提交,也可以最后一个EditText获取焦点时设置键盘的回车键为发送键,这样点击了键盘的回车键就自动处理了提交表单的逻辑。

设置也很简单,输入控件布局文件添加两个属性如下:

android:imeOptions="actionSend"
android:singleLine="true"
在Activity中检测到键盘回车键是否按下,从而处理响应的逻辑

mPassWord.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        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"
回车键的点击检测和上边的一样

示例图如下:



  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值