@Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus(); if (v!=null&&(!(v instanceof EditText)||!(v instanceof AppCompatEditText))){ InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); im.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } return super.onTouchEvent(event); }
判断当前的焦点所在控件是否属于输入框EditTextView或者AppCompatEditText,不是就隐藏键盘,网上大部分内容太过繁琐,Fragment当中也没法写,这种方式在Fragment所在的Activity中写了之后Fragment同样有效果