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(事件处理方法)
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的时候
再点击红色之后的方法回调情况
联合递归和回溯找规律。。。