【Android】【触摸】onInterceptTouchEvent(),onTouchEvent()

来源:互联网 发布:杨丞琳人品知乎 编辑:程序博客网 时间:2024/05/21 09:28

onInterceptTouchEvent()是ViewGroup的一个方法,目的是在各个childView触发onTouchEvent()之前对相关事件进行一次拦截。

基本原理:如果return true,直接事件传递结束,如果return false,那么表示该方法并未处理完全,仍需传递下去继续等待处理。

具体规则:

  1. down事件首先会传递到onInterceptTouchEvent()方法

  2. 如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return false,那么后续的move, up等事件将继续会先传递给该ViewGroup,之后才和down事件一样传递给最终的目标View的onTouchEvent()处理。

  3. 如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return true,那么后续的move, up等事件将不再传递给onInterceptTouchEvent(),而是和down事件一样传递给该ViewGroup的onTouchEvent()处理,注意,目标View将接收不到任何事件。

  4. 如果最终需要处理事件的View的onTouchEvent()返回了false,那么该事件将被传递至其上一层次的ViewGroup的onTouchEvent()处理。

  5. 如果最终需要处理事件的view 的onTouchEvent()返回了true,那么后续事件将可以继续传递给该view的onTouchEvent()处理。

0 0
原创粉丝点击