前言

很高兴遇见你~

事件分发系列文章已经到最后一篇了,先来回顾一下前面四篇,也当个目录:

本文是最后一篇,主要是模拟面试情况提出一些问题以及解答,也当是整个事件分发知识的回顾。读者也可以尝试一下看看这些问题是否都能解答出来。

面试开始

  1. 学过事件分发吗,聊聊什么是事件分发

  2. 那主要的分发流程是什么:

  3. 事件一定会经过Activity吗?

  4. Activity的分发方法中调用了onUserInteraction()方法,你能说说这个方法有什么作用吗?

  5. 前面你讲到最后会分发到viewGroup,那么viewGroup是如何分发事件的?

  6. 你前面讲到“一个触控点的一个事件序列只能给一个view处理,除非异常情况”,这里有什么异常情况呢?如果发生异常情况该如何处理?

  7. 那既然说到ACTION_CANCEL类型,那你可以说说还有什么事件类型吗?

  8. 哦?说到多指,那你知道ViewGroup是如何将多个手指产生的事件准确分发给不同的子view吗

  9. 那view支持处理多指信息吗?

  10. 嗯嗯...那View是如何处理触摸事件的?

  11. 你前面多次讲到分发方法和返回值,那你可以讲讲主要有什么方法以及他们之间的关系吗?

  12. 看来你对事件分发了解得挺多的,那你在实际中有运用到事件分发吗?

  13. 那外部和内部拦截法该如何选择呢?

  14. 前面一直聊到触摸事件,那你知道一个触摸事件是如何从触摸屏幕开始产生的吗?

  15. 可以具体讲讲前面IMS处理的流程吗?

  16. 你还有什么想问的吗?

  17. 下次一定。

最后

关于面试,我一直坚持的一个观点就是:可以面向面试知识点学习,但不可面向面试题目答案学习 。把相关热门题目的答案背诵下来可以忽悠到一些面试官,但现在基本上都不是简单的询问什么是事件分发,而会给一个具体的需求让我们思考等等。背诵面试题短期可能会让我们好像学到了很多,但事实上,我们什么都没学到。

事件分发系列文章到此完结。有疑问欢迎评论区交流,希望文章对你有帮助~

都看到这了,要不给作者留下个点赞再走?

01-27 18:04