Android关于软键盘的若干

android的软键盘一般在编辑框EditText获取焦点时弹出,如我们选取时或者当Activity跳转时默认获取焦点时都会弹出。对于界面跳转弹出的处理可以在AndroidManifest.xml文件中的<activity  </activity>中添加属性:android:windowSoftInputMode = "xx";

<activity
     android:name=".MainActivity"
     android:windowSoftInputMode="xx" >
</activity>

其中的值以及效果如下:

stateUnspecified:没有指定具体状态,系统将选择根据主题设置选择一个合适的状态。

stateUnchanged:本activity出现时同步上一个activity的软键盘状态。

stateHidden: 进入本activity中软键盘总是被隐藏,只有重新获取焦点时才显示。

stateAlwaysHidden:当该activity主窗口获取焦点时,软键盘也总是被隐藏的。

stateVisible:进入activity时软键盘可见,只有取消时才隐藏。

stateAlwaysVisible:本activity中软键盘总是显示的状态。

adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示。

adjustResize:该activity总是调整屏幕的大小以便留出软键盘的空间。

adjustPan:当选取编辑框EditText时窗口内容可以滑动,使处于界面下面的内容不会被软键盘遮挡。


javaCode中操作软键盘的显示和隐藏:

其中view可为activity中的任一即可。

//隐藏软键盘
public static void hideSoftInput(Context context, View view) {
        InputMethodManager imm = (InputMethodManager) context
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
// 显示软键盘
public static void showSoftInput(Context context, View view) {
        InputMethodManager imm = (InputMethodManager) context
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
    }

在EditText获取焦点并且弹出软键盘时也可以对其中的 确认按钮做操作,即可自定义显示的为”完成”还是“下一个”。

javaCode中:

mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);

XML中(EditText)
android:imeOptions="actionDone"

其中值对应如下:

actionUnspecified  未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED :显示回车键,根据具体情况显示。

actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE :显示回车键,不做操作

actionGo 去往,对应常量EditorInfo.IME_ACTION_GO :显示“去往”。

actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH : 显示放大镜图标。

actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND :显示“发送”。

actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT :显示“下一个”。

actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE :显示“完成”。


对软键盘的按钮操作:

mEditText.setOnEditorActionListener(new OnEditorActionListener() {

			@Override
			public boolean onEditorAction(TextView v, int actionId,
					KeyEvent event) {
				if (actionId == EditorInfo.IME_ACTION_DONE) {
					//具体操作
				}
				return false;
			}
		});





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值