前言
很高兴遇见你~
事件分发系列文章已经到最后一篇了,先来回顾一下前面四篇,也当个目录:
- Android事件分发机制一:事件是如何到达activity的? : 从window机制出发分析了事件分发的整体流程,以及事件分发的真正起点
- Android事件分发机制二:viewGroup与view对事件的处理 : 源码分析了viewGroup和view是如何分发事件的
- Android事件分发机制三:事件分发工作流程 : 分析了触摸事件在控件树中的分发流程模型
- Android事件分发机制四:学了事件分发有什么用? : 从实战的角度剖析事件分发的运用
本文是最后一篇,主要是模拟面试情况提出一些问题以及解答,也当是整个事件分发知识的回顾。读者也可以尝试一下看看这些问题是否都能解答出来。
面试开始
学过事件分发吗,聊聊什么是事件分发
那主要的分发流程是什么:
事件一定会经过Activity吗?
Activity的分发方法中调用了onUserInteraction()方法,你能说说这个方法有什么作用吗?
前面你讲到最后会分发到viewGroup,那么viewGroup是如何分发事件的?
你前面讲到“一个触控点的一个事件序列只能给一个view处理,除非异常情况”,这里有什么异常情况呢?如果发生异常情况该如何处理?
那既然说到ACTION_CANCEL类型,那你可以说说还有什么事件类型吗?
哦?说到多指,那你知道ViewGroup是如何将多个手指产生的事件准确分发给不同的子view吗
那view支持处理多指信息吗?
嗯嗯...那View是如何处理触摸事件的?
你前面多次讲到分发方法和返回值,那你可以讲讲主要有什么方法以及他们之间的关系吗?
看来你对事件分发了解得挺多的,那你在实际中有运用到事件分发吗?
那外部和内部拦截法该如何选择呢?
前面一直聊到触摸事件,那你知道一个触摸事件是如何从触摸屏幕开始产生的吗?
可以具体讲讲前面IMS处理的流程吗?
你还有什么想问的吗?
下次一定。
最后
关于面试,我一直坚持的一个观点就是:可以面向面试知识点学习,但不可面向面试题目答案学习 。把相关热门题目的答案背诵下来可以忽悠到一些面试官,但现在基本上都不是简单的询问什么是事件分发,而会给一个具体的需求让我们思考等等。背诵面试题短期可能会让我们好像学到了很多,但事实上,我们什么都没学到。
事件分发系列文章到此完结。有疑问欢迎评论区交流,希望文章对你有帮助~