您的位置:首页 > 移动开发 > Android开发

android 系统键盘的控制(显示和隐藏)

2016-03-24 11:40 453 查看
当我们在抱怨环境,抱怨怀才不遇的时候,没有别的原因,一定是自己做的还不够好。

今天遇到了系统键盘乱弹的情况,跳到另一个界面,键盘仍然不消失,在网上找了几种方法都挺好用的,这里记录一下~

软键盘设置失去焦点,在其父控件下,添加如下的属性:

android:focusable="true"
android:focusableInTouchMode="true"


直接关闭输入法键盘:

private void closeInputMethod() {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isOpen = imm.isActive();
if (isOpen) {
//第一个参数为需要关闭的Editext
// imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//没有显示则显示
imm.hideSoftInputFromWindow(mobile_topup_num.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}


自动判断输入法当前状态,如输入法已经显示,则隐藏,反之则显示。(可能判断有误,不如直接使用上面强制隐藏的方式)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);


这也是一个强制开启或关闭某Editext软键盘的方法,其中view可为某editext控件

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘


强制隐藏当前页面(Activity)的输入法

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);  (WidgetSearchActivity是当前的Activity)


获取当前输入法的状态(打开或者关闭)

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开

Over~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息