Android事件分发

2017-03-27  本文已影响0人  AnnaLeeYY

前几天面试,面试官问了我一个问题如图:

图.png

当时我就懵了,应为我从来没有看过这方面的东西,哎!面试吃了亏,下来就下功夫了,这不我为了不让下一个面试官感到尴尬我要测底理解透了它........

Activity---dispatchTouchEvent(默认)----分发下一级
LinearLayout---dispatchTouchEvent(默认)----分发下一级 and LinearLayout---onInterceptTouchEvent(默认)----下一级处理
button---dispatchTouchEvent(默认)---自己onTouchEvent(默认)---处理事件

事件分发 dispatchTouchEvent

dispatchTouchEvent 的事件分发逻辑如下:

事件拦截 onInterceptTouchEvent

onInterceptTouchEvent 的事件拦截逻辑如下:

事件响应 onTouchEvent

onTouchEvent 的事件响应逻辑如下:

如果传递到上面的 onTouchEvent 也返回 false,这个事件就会“消失”,而且接收不到下一次事件。

总结表格

事件分发.png
上一篇下一篇

猜你喜欢

热点阅读