View的事件分发机制

关于事件分发的几个重要函数

顾名思义,用来分发事件,返回值代表是否消耗当前事件

表示是否拦截当前事件,如果已经拦截了,不会被再次调用

用来处理点击事件,返回值表示是否消耗事件,不消耗就不会再次接收到事件

上面三者的具体关系可以参考下面的伪代码

有了以上伪代码我们就可以比较清楚的看到整个分发流程了,就这么简单。

在事件的末端是onTouchEvent,在内部,如果我们设置了onClickListener的话,就会被调用,可以见得,onClickListener的优先级其实是最低的。

事件传递的顺序

当点击事件产生之后,首先交给ACTIVITY->WINDOW->View

按照这个顺序依次传递到底部,如果底部无法处理,那么就返回给上一级处理,依次类推。

u3coding
A software developer

Leave a Comment

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.