android点击空白地方隐藏软键盘
2017-01-04 12:04
190 查看
/** * 设置输入法,如果当前页面输入法打开则关闭本篇文章用不到 * * @param activity */ public void hideInputMethod(Activity activity) { View a = activity.getCurrentFocus(); if (a != null) { InputMethodManager imm = (InputMethodManager) activity.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); try { imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } catch (Exception e) { e.printStackTrace(); } } }
//从这里开始判断如果软键盘打开则
@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction() == MotionEvent.ACTION_DOWN) {// 获得当前得到焦点的View,一般情况下就是EditText(特殊情况就是轨迹求或者实体案件会移动焦点)View v = getCurrentFocus();if (isShouldHideInput(v, ev)) {hideSoftInput(v.getWindowToken());}}return super.dispatchTouchEvent(ev);}/*** 根据EditText所在坐标和用户点击的坐标相对比,来判断是否隐藏键盘,因为当用户点击EditText时没必要隐藏** @param v* @param event* @return*/private boolean isShouldHideInput(View v, MotionEvent event) {if (v != null && (v instanceof EditText)) {int[] l = {0, 0};v.getLocationInWindow(l);int left = l[0], top = l[1], bottom = top + v.getHeight(), right = left+ v.getWidth();if (event.getX() > left && event.getX() < right&& event.getY() > top && event.getY() < bottom) {// 点击EditText的事件,忽略它。return false;} else {return true;}}// 如果焦点不是EditText则忽略,这个发生在视图刚绘制完,第一个焦点不在EditView上,和用户用轨迹球选择其他的焦点return false;}/*** 多种隐藏软件盘方法的其中一种** @param token*/private void hideSoftInput(IBinder token) {if (token != null) {InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);im.hideSoftInputFromWindow(token,InputMethodManager.HIDE_NOT_ALWAYS);}}
参考链接:http://www.cnblogs.com/coding-way/archive/2012/07/04/2575769.html
相关文章推荐
- android点击空白地方隐藏软键盘
- android 点击空白隐藏软键盘
- android点击空白区域隐藏软键盘的实现
- android 点击空白区域隐藏软键盘
- Android隐藏软键盘点击EditText之外的地方隐藏软键盘
- Android中点击空白区域隐藏软键盘功能实现
- Android点击空白处,隐藏软键盘
- android 实现点击listview 空白地方隐藏菜单
- android 点击空白出隐藏软键盘
- android 点击空白 隐藏软键盘
- Android 点击空白处,隐藏软键盘
- Android的GridView:点击空白地方事件扩展的监听
- android点击空白区域隐藏软键盘
- Android popupwindow 失去焦点或者点击空白区域时消失的解决方法
- Android点击空白区域,隐藏输入法软键盘
- [转]Android 完美的隐藏软键盘方法 点击编辑框外软键盘消失
- GridView点击空白地方事件扩展
- Android popupwindow 失去焦点或者点击空白区域时消失的解决方法
- ListView嵌套GridView点击空白地方无法触发ListView点击事件解决方法
- android点击文本框之外的地方隐藏键盘