Android事件分发机制

1).Android事件分发机制的本质是要解决:点击事件由哪个对象发出,经过哪些对象,最终达到哪个对象并最终得到处理。这里的对象是指Activity、ViewGroup、View.

2).Android中事件分发顺序:Activity(Window) -> ViewGroup -> View.

3).事件分发过程由dispatchTouchEvent() 、onInterceptTouchEvent()和onTouchEvent()三个方法协助完成

设置Button按钮来响应点击事件事件传递情况:(如下图)

布局如下:


最外层:Activiy A,包含两个子View:ViewGroup B、View C

中间层:ViewGroup B,包含一个子View:View C

最内层:View C

假设用户首先触摸到屏幕上View C上的某个点(如图中黄色区域),那么Action_DOWN事件就在该点产生,然后用户移动手指并最后离开屏幕。

按钮点击事件:

DOWN事件被传递给C的onTouchEvent方法,该方法返回true,表示处理这个事件;

因为C正在处理这个事件,那么DOWN事件将不再往上传递给B和A的onTouchEvent();

该事件列的其他事件(Move、Up)也将传递给C的onTouchEvent();


//https://blog.csdn.net/salmon_zhang/article/details/76746159

https://blog.csdn.net/u013637594/article/details/82493350


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容