Android巩固之事件分发机制
Posted oldz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android巩固之事件分发机制相关的知识,希望对你有一定的参考价值。
https://www.cnblogs.com/liaojie970/p/5869152.html
onTouchEvent是真正用来进行业务逻辑处理的地方,返回true表示已经将该事件消费,返回false表明事件继续传递。
onInterceptTouchEvent是用来进行判断是否需要对事件进行拦截从而阻止其继续往子组件传递的,返回false表示无需拦截,则递归的调用子组件的dispatchTouchEvent
方法;返回true表示需要拦截,则直接调用本组件的onTouchEvent方法进行处理。
在父组件dispatchTouchEvent中有可能会调用三个方法:
1、本组件的onInterceptTouchEvent
2、子组件的dispatchTouchEvent
3、本组件的onTouchEvent
ViewGroup中dispatchTouchEvent()具体的执行逻辑:
1、首先执行本组件的onInterceptTouchEvent。如果返回false,表明无需拦截,则调用第二个方法,即子组件的dispatchTouchEvent方法;如果返回true,无需向子组件
传递,则直接调用本组件的onTouchEvent方法
2、第一步中如果需要向子组件传递事件。如果递归调用子组件的dispatchTouchEvent返回false,则调用本组件的onTouchEvent方法;如果返回true,则无需调用本组件的
onTouchEvent方法
3、根据前两步的执行结果,将该dispatchTouchEvent的返回值返回给父组件的dispatchTouchEvent方法。
以上是关于Android巩固之事件分发机制的主要内容,如果未能解决你的问题,请参考以下文章
Android 进阶——Framework 核心之Touch事件分发机制详细攻略
Android 进阶——Framework 核心之Touch事件分发机制详细攻略
Android 进阶——Framework 核心之Touch事件分发机制详细攻略