最近做到一个Demo时,遇到EditText聚焦是 会弹出输入法 :
这里有个方法可以屏蔽打开一个Activity时,EditText自动获取焦点,输入法弹出的解决代码:
//屏蔽EditText自动弹出输入法的 监听
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
对于点击EditText以外的部分 输入法隐藏,需要重写onTouchEvent:
首先在oncreat中获得一个InputMethodManager:
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
核心代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
if(getCurrentFocus()!=null && getCurrentFocus().getWindowToken()!=null){
manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}
return super.onTouchEvent(event);
}