点击控件以外的区域使页面(activity)关闭,dispatchTouchEvent用法
来源:互联网 发布:网络通则 编辑:程序博客网 时间:2024/06/03 19:47
在数据列表页,点击图片,放大显示的功能,放大显示的页面是个ViewPager,显示后,点击viewPager区域外的空白区域可关闭页面。点击ViewPager页面不做响应。
该viewPager设置为宽为match_parent,最大高度为300dp的区域。
关键代码:
@Override public boolean dispatchTouchEvent(MotionEvent event){ if(event.getAction() == MotionEvent.ACTION_DOWN){ View view = mViewPager; if(!inRangeOfView(view,event)){ click(); } } return super.dispatchTouchEvent(event); } //判断是否在控件区域内 private boolean inRangeOfView(View view,MotionEvent event){ int[] location = new int[2]; view.getLocationOnScreen(location); int x = location[0]; int y = location[1]; if(event.getX() < x || event.getX() > (x + view.getWidth()) || event.getY() < y || event.getY() > (y + view.getHeight())){ return false; } return true; }
//关闭页面 public void click(){// Intent mIntent = new Intent(); // 设置结果,并进行传送// this.setResult(3, mIntent); System.gc();ImageLoader.getInstance().clearMemoryCache(); finish(); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); }
效果:点击中间宽为全屏,高为300dp的ViewPager区域,无响应,点击该区域上方或下方,关闭页面。
下面附上点击页面任意位置关闭页面,ViewPager的翻页功能不受影响的代码:
@Override public boolean dispatchTouchEvent(MotionEvent event){ if(event.getAction() == MotionEvent.ACTION_DOWN){ downX = event.getX(); downY = event.getY(); LogUtil.d(TAG,"ACTION_DOWN==========downX===="+downX+",downY="+downY); }else if(event.getAction() == MotionEvent.ACTION_UP){ upX = event.getX(); upY = event.getY(); LogUtil.d(TAG,"ACTION_UP==========upX===="+upX+",upY="+upY); if(Math.abs(upX-downX)<100){ click(); } } return super.dispatchTouchEvent(event); }
0 0
- 点击控件以外的区域使页面(activity)关闭,dispatchTouchEvent用法
- 如何点击某区域以外的区域来关闭这个区域
- 点击div以外的区域div消失
- 点击控件以外的地方隐藏控件
- Js点击文字弹出层,点击层以外区域关闭层
- 点击Dialog以外的区域不让其隐藏的解决办法
- 点击导航栏以外区域也会返回的问题
- 点击div以外的其他区域,div隐藏
- js 点击元素以外的区域隐藏 实现
- 点击edittext以外的地方关闭软键盘的方法
- Android中点击编辑框以外的地方关闭输入法
- 扩大控件的点击区域
- Activity对话框样式. 点击空白区域关闭窗口
- 点击键盘以外空白区域隐藏键盘
- Android 点击EditText以外区域键盘消失
- 点击popupwindow以外区域 popupwindow自动消失
- Android点击EditText以外区域,键盘消失
- 页面弹框之外的区域点击关闭弹框js
- namespace及use的用法
- 【材料计算】第一性原理、密度泛函理论、从头算之间的关系
- Maven 多环境配置文件管理
- SpringBoot 学习记录(九): Email
- IOS webview在线预览文件图片等
- 点击控件以外的区域使页面(activity)关闭,dispatchTouchEvent用法
- linux环境下使用V4L2及Qt设计简易照相机
- 线程implements Runnable和extends Thread有什么区别
- 用opencv使用大恒相机的痛苦经历
- Python与Java的区别小汇二
- PAT1031 查验身份证(15)
- HTTP图解(三)HTTP2.0
- spring-boot整合redis作为缓存(3)——自定义key
- 中国历史行政区划