事件分发机制

2018-03-28  本文已影响0人  笔墨Android

XSize的主页

android事件分发的理解:

本文知识点:

首先事件分发流程是在Activity、ViewGroup、View三者之间进行传递的,但是这里你首先要理解分发的几个相应发方法

其次应该明白一个概念,所有的事件分发都是基础相应的手势进行处理的,也就是说从你按下屏幕的那一刻开始的,然后直接传递到相应页面的Activity上,然后就有了下面这张比较潦草的图片了...

andorid事件分发流程

图画的不怎么样,大家将就看吧!能明白就好

首先先理解一下上面的图片含义吧!

1.Activity层的内容:

首先事件会传递到相应Activity的dispathTouchEvent方法中,如果你想要在这里处理相应的点击事件返回true,false的话,之后的ViewGroup就不能收到相应的时间了,事件到此就终止了!但如果你要是不去重写这个方法的话,才会将事件传递到相应的ViewGroup。

2.ViewGroup层的内容

因为ViewGroup有相应的onInterceptTouchEvent方法,所以这里略显的复杂一点,也就是传说中的事件分发了!首先事件会传递到相应的dispathTouchEvent方法中

3.View层的内容

因为View层没有相应的onInterceptTouchEvent方法,所以这里和Activity没有什么太大的区别首先也是传递到相应的dispathTouchEvent方法中

4.右侧的onTouch侧的内容

其实所有的onTouch处理的办法都类似,如果自己不想处理(返回false或者返回super.onTouchEvent(event))就直接交给上一层去处理,如果想处理的话(返回true)那么事件就在相应的onTouch中被消费了

关于事件分发的整体流程就是这样的,所有的内容我都是log进行测试的,如果有什么不对的希望大家指出,我会马上更正。

上一篇 下一篇

猜你喜欢

热点阅读