Android事件分发机制完全解析(全)

来源:互联网 发布:嵌入式软件 启动过程 编辑:程序博客网 时间:2024/05/29 12:06

转自郭霖大神的 

Android事件分发机制完全解析,带你从源码的角度彻底理解

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9097463

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153761

***点击事件派发:
--onTouch和onClick
点击事件都是调用View的dispatchTouchEvent方法
在这个方法中进行判断(主要就是通过执行一次onTouch事件来获取返回值)
主要条件是:如果setOnTouchClick返回true就结束
否则:就是继续执行onTouchEvent方法
--onTouchEvent里面就是进行TOUCH_MOVE等操作
--还有onClickListner的操作(performClick)(所以onTouch会比onClick更快处理的原因)


--ViewGroup:
1. Android事件分发是先传递到ViewGroup,再由ViewGroup传递到View的。
2. 在ViewGroup中可以通过onInterceptTouchEvent方法对事件传递进行拦截
--onInterceptTouchEvent方法返回true代表不允许事件继续向子View传递
--返回false代表不对事件进行拦截,默认返回false。
3. 子View中如果将传递的事件消费掉,ViewGroup中将无法接收 到任何事件。(这里可以参考上面的dispatchTouchEvent)

0 0