Android 点击editview以外位置实现隐藏输入法

         实现代码:

@Override   public boolean dispatchTouchEvent(MotionEvent ev) {     if (ev.getAction() == MotionEvent.ACTION_DOWN) {       View v = getActivity().getCurrentFocus();       if (isShouldHideInput(v, ev)) {          InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);         if (imm != null) {           imm.hideSoftInputFromWindow(v.getWindowToken(), 0);         }       }       return getActivity().dispatchTouchEvent(ev);     }     // 必不可少,否则所有的组件都不会有TouchEvent了     if (getActivity().getWindow().superDispatchTouchEvent(ev)) {       return true;     }     return getActivity().onTouchEvent(ev);   }    public boolean isShouldHideInput(View v, MotionEvent event) {     if (v != null && (v instanceof EditText)) {       int[] leftTop = { 0, 0 };       //获取输入框当前的location位置       v.getLocationInWindow(leftTop);       int left = leftTop[0];       int top = leftTop[1];       int bottom = top + v.getHeight();       int right = left + v.getWidth();       if (event.getX() > left && event.getX() < right           && event.getY() > top && event.getY() < bottom) {         // 点击的是输入框区域,保留点击EditText的事件         return false;       } else {         return true;       }     }     return false;   } 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. Android使用百度地图SDK获得当前设备位置所在的省、市
  2. 【android】可放大缩小图片位置点击位置获取
  3. 关于AlertDialog中EditText不能弹出输入法解决方法
  4. Android 指定Toast信息显示的位置并使用Toast显示其他View
  5. android:minSdkVersion =3改成7导致我的surfaceview的位置出现偏
  6. Android指定Toast显示的位置并用Toast显示其他的View
  7. android 从文件制定位置读取数据
  8. Android中调用手机自带输入法比如三星s5830i,仅限制输入浮点数,崩
  9. Android 输入法框架流程整理

随机推荐

  1. 关于图片性能优化,你必须知道的
  2. Flink Table和SQL API:为统一批处理和流处
  3. 手把手教你实现vue下拉菜单组件
  4. 【电子书分享】Learning PySpark下载,包含
  5. 探索emoji字符串长度之谜
  6. Flume+Morphlines实现数据的实时ETL
  7. 一篇文章带你了解Android Usb摄像头
  8. 软测经典面试题(四)
  9. 报表生成器FastReport .Net如何使用FastR
  10. 高企认证对企业有哪些好处呢?