Android页面中点击空白处隐藏软键盘
2017-01-07 10:14
381 查看
我们在开发中,有时候为了更好的用户体验,产品经理会要求我们在有些软键盘弹出时,要求点击外部空白处将软键盘自动隐藏,第一时间想到了onTouchEvent()方法,网上也有人给出这种解决方案,具体实现如下:
http://www.2cto.com/kf/201505/401382.html
具体实现的代码贴在下面,希望能够帮到有需要的朋友:
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); }可是我在我的项目中具体使用这中方式的时候,并没有起到效果,于是就又在网上找了一下,发现有大神给出如下的解决方案,我试着用了之后,可以解决我的问题,遂将其记录下来,借鉴的资料地址为:
http://www.2cto.com/kf/201505/401382.html
具体实现的代码贴在下面,希望能够帮到有需要的朋友:
/** * 获取点击事件,点击空白处隐藏键盘 * * @param ev * @return */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { View view = getCurrentFocus(); if (isHideInput(view, ev)) { HideSoftInput(view.getWindowToken()); } } return super.dispatchTouchEvent(ev); } // 判定是否需要隐藏 private boolean isHideInput(View v, MotionEvent ev) { 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 (ev.getX() > left && ev.getX() < right && ev.getY() > top && ev.getY() < bottom) { return false; } else { return true; } } return false; } // 隐藏软键盘 private void HideSoftInput(IBinder token) { if (token != null) { InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); manager.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS); } }
相关文章推荐
- android中点击空白处隐藏软键盘
- android中点击空白处隐藏软键盘
- android中点击空白处隐藏软键盘
- Android 中点击空白处隐藏软键盘
- Android 中自定义Dialog样式的Activity点击空白处隐藏软键盘功能(dialog不消失)
- android中点击空白处隐藏软键盘
- android中点击空白处隐藏软键盘
- Android中点击空白处隐藏软键盘
- android中点击空白处隐藏软键盘
- android 点击空白处隐藏软键盘
- android点击屏幕空白处隐藏软键盘
- android中点击空白处隐藏软键盘
- android中点击空白处隐藏软键盘
- android中点击空白处隐藏软键盘
- Android中点击空白处隐藏软键盘
- 点击空白处隐藏软键盘
- ios弹出软键盘时fixed失效及点击空白处隐藏层的解决办法
- 点击空白处隐藏软键盘
- 【转】Android点击空白区域,隐藏输入法软键盘
- 安卓手机点击空白处自动隐藏软键盘的方法