事件传递机制
为什么要进行事件分发机制?
安卓上面的view是树形结构的 View可能会重叠起来了 当 我们点击的地方有多个view可以响应的时候,这个点击事件应该给谁呢?就需要事件分发机制来帮忙了
View的结构
事件传递一共有三个方法
这三个方法有一个boolean类型的返回值 通过返回true和false来控制事件传递的流程
Activity和View都没有拦截方法 原因是 作为事件的分发者 如果进行拦截就会导致整个屏幕无响应事件 这也不是我
view作为事件传递的最末端要么消费事件 要么不处理进行回传 根本没有必要拦截
事件分发的流程
activity photoview decorview viewgroup view 如果没有处理的话就进行回传
总结
view的事分发机制实际上就是一个非常经典的责任链模式 当多个对象处理同一请求的时候将这些对象串成一条链知道有对象处理他为止