Android 软键盘强制显示/隐藏
一丶强制显示软键盘
应用场景 :
比如我们从搜索框点击进入下一个界面,当返回的时候,有的需求是要把软键盘再次弹出,不用用户去点击搜索框,这样,我们就需要强制显示搜索框
解决方法:
强制显示软键盘,必须先让EditText重新获取焦点,本人实践之后发现并不行:可能因为要等待UI绘制完成,才能弹出软键盘,所以这里我们用的Timer类,加一个0.3s的定时器
edittext.setFocusable(true);
edittext.setFocusableInTouchMode(true);
edittext.findFocus();
edittext.requestFocus();//edittext是一个EditText控件
//强制显示软键盘,必须先让EditText重新获取焦点,等待UI绘制完成,才能弹出软键盘,加一个0.3s的定时器
Timer timer =newTimer();//设置定时器
timer.schedule(newTimerTask() {
@Override
public voidrun() {//弹出软键盘的代码
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(searchInput, InputMethodManager.RESULT_SHOWN);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
}
},300);//设置300毫秒的时长
二丶隐藏软键盘
应用场景 :
这个场景就多了,当我们点击空白区域,或者滚动listview 都需要隐藏软键盘
解决方法:
InputMethodManager inputMethodManager =(InputMethodManager)LampProjectListActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(searchView.getWindowToken(),0);