点击edittext以外的地方关闭软键盘的方法
来源:互联网 发布:微网页制作软件 编辑:程序博客网 时间:2024/05/02 07:18
直接上代码
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {// TODO Auto-generated method stub
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
View view = getCurrentFocus();
if (isShouldHideInput(view, ev)) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
changeReviewBtnState(0);
}
}
return super.dispatchTouchEvent(ev);
}
//// 必不可少,否则所有的组件都不会有TouchEvent了
if (getWindow().superDispatchTouchEvent(ev)) {
return true;
}
return onTouchEvent(ev);
}
public boolean isShouldHideInput(View v, MotionEvent ev) {
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 (ev.getX() > left && ev.getX() < right && ev.getY() > top && ev.getY() < bottom) {
// 点击的是输入框区域,保留点击EditText的事件
return false;
} else {
return true;
}
}
return false;
}
但是我用的时候遇到了一个情况就是:如果你让edittext.requestFocus();edittext.requestFocusFromTouch();这样设置的话,与edittext不在一个布局里但是相邻的Imageview的点击事件出了问题。
0 0
- 点击edittext以外的地方关闭软键盘的方法
- Android工作笔记_点击EditText以外的地方关闭软键盘的方法
- 点击EditText以外的地方软键盘隐藏
- 点击空白处隐藏软键盘(点击EditText以外的地方隐藏软键盘)
- 点击EditText以外的地方隐藏输入框和软键盘
- 点击Edittext之外的地方关闭Edittext
- Android 通过点击EditText之外的地方隐藏软键盘
- EditText之外的地方点击怎么隐藏软键盘
- Android 通过点击EditText之外的地方隐藏软键盘
- android点击屏幕上EditText区域以外的任何地方隐藏键盘的方法
- 点击EditText以外的地方隐藏掉键盘
- 实现点击当前输入框以外的地方,自动隐藏输入法软键盘
- 复杂布局中点击编辑框EditText以外界面无法隐藏软键盘的解决方法
- Android Activity中点击EditText以外的位置软键盘收起
- android 点击EditText外的区域关闭软键盘
- Android中点击编辑框以外的地方关闭输入法
- Android点击EditText之外的地方隐藏软键盘同时使EditText失去焦点
- Android点击EditText以外位置隐藏软键盘
- PyQt&opencv图像处理(3):读取显示、存储图片
- Linux 怎么查看性能瓶颈。
- 包含选择器和子选择器的区别
- ARC与非ARC在一个项目中同时使用
- hdu 5078 Osu! (2014 acm 亚洲区域赛鞍山 I)
- 点击edittext以外的地方关闭软键盘的方法
- 第9周项目4乘法口诀表
- 判断链表中是否有环路,以及求环路的入口点
- 性能服务器开发
- iOS7滑动返回
- [IDE] VS文件扩展名大全
- SPOJ第三题(回文数问题)
- SQL Server Profiler使用方法
- R:语言介绍