键盘 点击别处隐藏键盘
2016-06-26 11:41
155 查看
在网上一顿找,找到的下面的方法,认为还是比较好的,记录下:
主要是判断点击的位置 是不是在键盘内,不是就隐藏了。
主要是判断点击的位置 是不是在键盘内,不是就隐藏了。
@Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus(); if (isShouldHideInput(v, ev)) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(v.getWindowToken(), 0); } } return super.dispatchTouchEvent(ev); } // 必不可少,否则所有的组件都不会有TouchEvent了 if (getWindow().superDispatchTouchEvent(ev)) { return true; } return 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; }
相关文章推荐
- IE 9 打开FORM 界面,JAVA TM is blocked because is out of date and needs to update
- Android WebView支持WebGL
- 如何发布Web项目到互联网
- [置顶] 补专题列表
- red hat替换centos yum源
- Codeforces 678 D. Iterated Linear Function(构造矩阵)
- 回文之递归应用
- HTML基本标签(二)
- csu 1751: 卡牌通行证
- 母老虎:英国的那些女王们
- MFC 字体对话框
- C# 读取EXCEL文件的三种经典方法
- 我的理解——HTTP中Get与Post的区别
- 深度学习(三十九)可视化理解卷积神经网络(2.0)
- 树莓派与arduino通信
- 使用JPress快速搭建系统
- struts2配置文件中result的type类型
- (2) ebj学习:hello world入门案例
- 避免野指针
- Dubbo&ZK分布式服务化改造(三)——Dubbo服务高级特性及服务划分原则