当触摸事件发生时,首先Activity将触摸事件传递给最顶层的View,触摸事件最先到达最顶层
view 的 dispatchTouchEvent ,然后由 dispatchTouchEvent 方法进行分发,
Android中默认情况下事件传递是由最终的view的接收到,传递过程是从父布局到子布局,也就是从Activity到ViewGroup到View的过程,默认情况,ViewGroup起到的是透传作用。

dispatchTouchEvent
它是处理触摸事件分发,事件(多数情况)是从Activity的dispatchTouchEvent开始的。执行
super.dispatchTouchEvent(ev),事件向下分发。
当它返回true时所有事件都会往下分发并且用户手指还没离开屏幕时(直到用户手指还没有从屏幕抬起【ACTION_UP】时我们称为一次完整触摸)包括【ACTION_MOVE,ACTION_UP,ACTION_CANCEL】都会重复进行dispatchTouchEvent进行分发,反之终止除此次以外的所有事件下发,还有一种情况第一次返回False时一次完整的触摸就此结束,第一次返回True,接下来N次返回false都会在一次完整触摸的情况下再次进行分发
onInterceptTouchEvent
是ViewGroup提供的方法,默认返回false,返回true表示拦截,当用户一次性完整触摸时此方法只调用一次,当它返回true时他会拦截子View的触摸事件,反之往下传递触摸事件给子View,接着子View又从dispatchTouchEvent事件开始进行分发
onTouchEvent
它是View中提供的方法,ViewGroup也有这个方法,view中不提供onInterceptTouchEvent。view中默认返回true,表示消费了这个事件。当此方法捕获到触摸事件时会传递到当前触摸的View上面如果此View返回true会继续捕获触摸事件反之返回此View上一层控件的onTouchEvent方法进行捕获

更多相关文章

  1. android view滑动助手类 OverScroller VelocityTracker
  2. Android(安卓)NDK进入发展
  3. 阿里ctf-2014 android 第一、二题
  4. Android之循环显示图像的Android(安卓)Gallery组件
  5. Android(安卓)浅谈AsyncTask异步
  6. Android(安卓)滑动冲突处理
  7. Android(安卓)Alarm定时任务基础
  8. 五种控制Android应用的权限的方法
  9. 使用kotlin编写Android第一个Activity

随机推荐

  1. Android——如何将整个界面变成列表 — S
  2. FragmentTabHost QQ 选项卡
  3. Android(安卓)使用Eclipse 构建K9
  4. Android学习笔记(14)————Socket在And
  5. Android学习笔记(16)————Android的XM
  6. Android中禁止Gridview上下滑动
  7. Android中GPRS 开关
  8. Android(安卓)2d物理引擎Box2d介绍
  9. Android(安卓)studio 通过wifi debug
  10. Android(安卓)手机录音功能实现