Android事件分发机制--->ACTION_UP事件

2018-07-23  本文已影响204人  谢尔顿

引言

在文章一步步探索学习Android Touch事件分发传递机制(二)中我们可以练习到ACTION_UP事件的事件分发传递流程是怎样的,因为UP事件发生前肯定有DOWN事件,所以UP事件的分发流程肯定与DOWN事件在哪被消费是紧密相关的。可以继续用上一篇文章Android事件分发机制--->DOWN事件中的demo为例子,打印log,来探索UP事件的分发流程。

1. 布局&代码

Android事件分发机制--->DOWN事件中用到的一样。

2. 打印log

(1) 所有方法返回super的情况

总结:ACTION_UP事件并没有和ACTION_DOWN事件一样类似U型的结构在View树传递,而是直接在Activity的onTouchEvent方法中消费掉了。

(2) ViewGroup2的dispatchTouchEvent()返回true的情况

总结:当ACTION_DOWN事件在某一个View或者ViewGroup的dispatchTouchEvent()方法中被消费调的情况下,对应的ACTION_UP事件也会在次被消费掉,终止传递。

(3) ViewGroup2的onInterceptTouchEvent()和onTouchEvent都返回true的情况

总结:当ACTION_DOWN事件在某一个View或者ViewGroup的onTouchEvent方法中被消费掉的情况下,对应的ACTION_UP事件也会再次被消费掉,终止传递。(需要注意的是,ACTION_UP事件是不会再经过拦截器onInterceptTouchEvent()方法了的)

(3) ViewGroup2的onTouchEvent返回true的情况

总结:可以从Log看出来,当ACTION_DOWN事件被某控件的onTouchEvent方法消费掉,则其对应的ACTION_UP事件只传递到该控件。也就是不会传递到比此空间更深层的控件中去。

3.最后总结

值得学习的文章:

上一篇下一篇

猜你喜欢

热点阅读