事件分发机制(简单了解)

事件分发我们首先要了解什么是事件分发:
事件分发是我们在操作屏幕点击,滑动,抬起时需要的一种机制,一般来说是在线程中进行事件分发机制(简单了解)
简单的简述一下这张图所带来的信息:
首先当我们触摸屏幕的时候,会首先执行Activity的dispatchTouchEvent 这一步不管返回是true或false
都会执行当前的方法
我们继续往下走会执行ViewGroup的dispatchTouchEvent 当这个方法为true的时候我们会执行当前的方法,当这个方法为false的时候我们会返回到Activity的onToouchEvent
我们继续往下,会执行到ViewGroup的onInterceptTouchEvenet 当这个发方法为true的时候我们会执行ViewGroup的onToouchEvent 如果为false的话才会继续向下执行,如图所示

onTouch和onTouchEvent有什么区别,又该如何使用?

从源码中可以看出,这两个方法都是在View的dispatchTouchEvent中调用的,onTouch优先于onTouchEvent执行。如果在onTouch方法中通过返回true将事件消费掉,onTouchEvent将不会再执行。

什么是ViewGroup?它和普通的View有什么区别?
顾名思义,ViewGroup就是一组View的集合,它包含很多的子View和子VewGroup,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。但ViewGroup实际上也是一个View,只不过比起View,它多了可以包含子View和定义布局参数的功能。ViewGroup继承结构示意图如下所示:

事件分发机制(简单了解)
可以看到,我们平时项目里经常用到的各种布局,全都属于ViewGroup的子类。

好了,就了解了这么多,下面一幅图总结一下
事件分发机制(简单了解)
感谢各位大佬的点赞和支持!