Android开发-事件分发机制

参考资料:

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

http://blog.csdn.net/guolin_blog/article/details/9097463

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

http://blog.csdn.net/guolin_blog/article/details/9153761

笔记:

1.View的dispatchTouchEvent方法中会判断这个view是否为enable并且是否注册了onTouchListener,如果注册了,会调用onTouch方法,如果返回true,则事件被消费,dispatchTouchEvent直接返回true,

2.如果返回false,则进入onTouchEvent方法,在onTouchEvent的UP事件中,调用onClick方法

3.ViewGroup的dispatchTouchEvent,会首先判断disallowIntercept与onInterceptTouchEvent是否为真,如果有一个为真,则通过触摸坐标判断应该调用哪一个child的dispatchTouchEvent,child的dispatchTouchEvent方法则回到了View的dispatchTouchEvent,如果child的dispatchTouchEvent返回true,则直接返回true,

4.如果disallowIntercept与onInterceptTouchEvent都不满足,则调用super.dispatchTouchEvent,ViewGroup的super是View,所以又回到了View的dispatchTouchEvent

猜你喜欢

转载自blog.csdn.net/qq_19694479/article/details/80250459
今日推荐