Android 软键盘强制显示/隐藏

2017-04-12  本文已影响0人  Mistletoeckc

一丶强制显示软键盘

应用场景 : 

比如我们从搜索框点击进入下一个界面,当返回的时候,有的需求是要把软键盘再次弹出,不用用户去点击搜索框,这样,我们就需要强制显示搜索框                                 

解决方法: 

强制显示软键盘,必须先让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);

上一篇下一篇

猜你喜欢

热点阅读