Adnroid中的事件分发机制

版权声明:本文为博主原创文章,允许转载共享,但是请注明出处! https://blog.csdn.net/xixirupan/article/details/54767373

Android中的时间分发机制讲的比较好的理论性文章推荐:http://www.open-open.com/lib/view/open1468806499405.html

http://www.open-open.com/lib/view/open1468806499405.html#articleHeader0

对理论性详细剖析的文章已经不胜枚举,所以我这里仅仅以一个小例子来对事件分发机制的思路做个简单的笔录,以防止以后学习的遗忘

首先例子效果如下:

例子层次结构

 



底层---->顶层依次为   Acitvity ---->ViewGroup1----->ViewGroup2------->View

事件分发机制实现函数

Activity的  dispatchTouchEvent(事件分发方法)  onTouchEvent(事件处理方法)  

扫描二维码关注公众号,回复: 2990991 查看本文章

ViewGroup的  dispatchTouchEvent(事件分发方法)  onIntercepterTouchEvent(事件拦截方法) onTouchEvent(事件处理方法)  

View的   dispatchTouchEvent(事件分发方法)  onTouchEvent(事件处理方法)  

这些方法的回调顺序:

这些方法默认情况下返回false

默认情况下:点击最上层红色的view

各个方法的调用情况是:0 down  1 up  2 move


点击绿色的个方法回调情况


当将绿色的那个viewgroup设置的onTouchEvent()方法return true的时候 各方法 的回调情侣



当红色在xml中设置clickable=“true”或者onTouchEvent return true的时候

再点击红色之后的方法回调情况


联合递归和回溯找规律。。。

猜你喜欢

转载自blog.csdn.net/xixirupan/article/details/54767373
今日推荐