标签:
目前的理解:
1.当点击按钮时,分别依次被捕捉的事件是DOWN,MOVE,UP
2.在UP时,事件流才会处理到CLICK事件
3.
Activity---dispatchTouchEvent---DOWN
RTLayout---dispatchTouchEvent---DOWN
RTLayout---onInterceptTouchEvent---DOWN
RTButton---dispatchTouchEvent---DOWN
RTButton---onTouch---DOWN
RTButton---onTouchEvent---DOWN
解读:首先进入Activity事件分发流程,执行super方法时会分发到--
----下一层视图的dispatch方法
------dispacth方法再进入拦截器
----如果拦截器返回true,表明运行通过
----此时进入到下一层的dispatch
此时已经到达底层视图,dispatch中分别执行touch和touchEvent,如果是up类型,还会执行clicked事件
如果touchEvent返回的结果是false(系统默认好像就是false),那么dispatch结果就是false,表明事件没有被
消费掉,则交给上一级的dispatch继续处理执行touch,touchEvent消费,以此类推...
这里还有个长按事件传递问题???
还有拦截调式探究???
参考:http://www.infoq.com/cn/articles/android-event-delivery-mechanism/
标签:
原文地址:http://blog.csdn.net/rnzuozuo/article/details/44965761