Advertisement

Android自定义View:第二部分 事件分发机制

阅读量:

View的事件分发机制是Android开发中的一个复杂点,并且是非常核心的知识点之一,在深入理解并掌握事件分发机制后,在我们进行自定义View时会进行深入分析并有效解决问题

在整体架构中,View事件的主要传递路径依次为:Activity→Window→ViewGroup→View。具体而言,在整个生命周期中,首先由activity发起dispatchTouchEvent事件;随后在Activity内部的Window组件接收并转发该事件;接着Windows系统会将此事件进一步传递给Decorated View(DecorView)组件;最后Decoration View会将此事件转发给顶端视图(通常是在Activity中通过setContentView方法指定的一个特定视图),而该顶端视图一般是一个包含子视图(子视图可以是一个Nested View Group或单个视图)的主视图组(Nested View Group)。

dispatchouchan是一个核心事件分发接口, 作为所有事件分发的核心功能, 其中, ViewGroup和View都实现了dispatchouchan方法, 但它们在事件处理机制上存在显著差异. 这里, 我们将首先从ViewGroup实现的dispatchouchan入手进行详细分析.

ViewGroup的dispatchTouchEvent方法,源码

全部评论 (0)

还没有任何评论哟~