android事件分发机制
来源:互联网 发布:战地2小队数据 编辑:程序博客网 时间:2024/06/03 18:42
判断一个事件是传给viewgroup1还是2,比如1是横向滑动,2是竖直滑动的话,通过ViewConfiguration.get(context).getScaledTouchSlop();来判断,横向距离大于此变量,并且纵向距离小于此距离才能判定问横向滑动;不然的话,依靠手的一般的竖直滑动,稍微快一点就会使变动距离大于上面的变量,从而时子view的竖直监听接收不到事件,导致横向滑动不了多少(dx较小),纵向也捕获不了滑动事件,具体代码如下:
@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {// TODO Auto-generated method stubswitch(ev.getAction()){case MotionEvent.ACTION_DOWN:lastX = (int)ev.getX();lastY = (int)ev.getY();Log.i(TAG, "ACTION_DOWN: "+ lastX);break;case MotionEvent.ACTION_MOVE:int currentX = (int)ev.getX();int currentY = (int)ev.getY();int diffX = lastX - currentX;int diffY = lastY - currentY;diffX = Math.abs(diffX);diffY = Math.abs(diffY);Log.i(TAG, "ACTION_MOVE: "+ diffX);/***** * 必须加一个竖直判断,因为上下滑动的平率很容易让x之间的距离大于设定的距离, * 所以,缓慢上下滑动还能够在scrollView组件里面滑动,速度稍微快一点就转到 * viewgroup的左右滑动当中去了 */if(diffX > mTouchSlip && diffY < mTouchSlip){ // return true;}break;case MotionEvent.ACTION_UP:Log.i(TAG, "ACTION_UP: ");break;}return super.onInterceptTouchEvent(ev);}
0 0
- android事件分发机制
- Android事件分发机制
- Android 事件分发机制
- Android事件分发机制
- Android 事件分发机制
- Android 事件分发机制
- android 事件分发机制
- Android事件分发机制
- android 事件分发机制
- android事件分发机制
- Android 事件分发机制
- android事件分发机制
- android 事件分发机制
- android 事件分发机制
- Android 事件分发机制
- Android事件分发机制
- Android事件分发机制
- Android 事件分发机制
- 解决Ubuntu 12.04更新后 ”系统的网络服务与此版本的网络管理器不兼容“问题
- openfire+spark+smack实现即时通讯
- 五分钟了解Mecanim角色动画系统
- node.js安装
- 啊哈C——学习4.2一起来找茬
- android事件分发机制
- COM组件设计与应用(二)——GUID和接口
- COM组件设计与应用(三)——数据类型
- COM组件设计与应用(四)——简单调用组件
- 面向对象上
- Ubuntu网络配置+Fixing “Failed to bring up eth0” in Ubuntu
- 外部排序的基本思路
- mysql和apache tomcat服务安装
- python图片小爬虫