Android点击EditText以外区域隐藏键盘Fragment同样适用

@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同样有效果

你可能感兴趣的:(Android)