标签:
总结一下:
1.Touch事件分发中只有两个主角:
ViewGroup和View。
ViewGroup包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三个相关事件。View包含dispatchTouchEvent、onTouchEvent两个相关事件。其中ViewGroup又继承于View。
2.触摸事件由Action_Down、Action_Move、Aciton_UP组成,其中一次完整的触摸事件中,Down和Up都只有最多一个,Move有若干个,可以为0个。
3.事件传递的两种方式:
隧道方式:从根元素依次往下传递直到最内层子元素或在中间某一元素中由于某一条件停止传递;
冒泡方式:从最内层子元素依次往外传递直到根元素或在中间某一元素中由于某一条件停止传递。
dispatchTouchEvent是隧道方式,onTouchEvent是冒泡方式(若返回true,则上层不再处理)。
4.onInterceptTouchEvent有两个作用:
拦截Down事件的分发;
中止Up和Move事件向目标View传递,使得目标View所在的ViewGroup捕获Up和Move事件。
参考:《Android事件分发机制完全解析,带你从源码的角度彻底理解》
标签:
原文地址:http://www.cnblogs.com/kaima/p/4788625.html