android中點擊空白處隱藏軟鍵盤

首先說下在普通Activity中的實現:java

InputMethodManager manager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

@Override
 public boolean onTouchEvent(MotionEvent event) {
  // TODO Auto-generated method stub
  if(event.getAction() == MotionEvent.ACTION_DOWN){
     if(getCurrentFocus()!=null && getCurrentFocus().getWindowToken()!=null){
       manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
     }
  }
  return super.onTouchEvent(event);
 }


若是是Fragment的話,須要先讓其中的view實現ide

view.setOnTouchListener(this);

…………………………


@Override
public boolean onTouch(View v, MotionEvent event) {
    getActivity().dispatchTouchEvent(event);
    return false;
}

而後其父類Activity中實現dispatchTouchEvent方法(在onTouchEvent不起做用的前提下)this

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    System.out.println("dispatchTouchEvent");
    if(ev.getAction() == MotionEvent.ACTION_DOWN){
        if(getCurrentFocus()!=null && getCurrentFocus().getWindowToken()!=null){
            manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        }
    }
    return super.dispatchTouchEvent(ev);
}
相關文章
相關標籤/搜索