Android事件分发机制-自己理解以后的阐述

来源:互联网 发布:centos7.2 网络配置 编辑:程序博客网 时间:2024/05/16 18:07

一直都想写自己的博客,学了将近两年的Android感觉自己的,每次遇到问题都总结成了word写成了文档,后来发现自己的总结有了12万字之多,但是发现在word上写还是很麻烦的,字体或者行距啥的得自己手动调整,一直否通过CSDN来学习,但是一直没用它来写自己的博客,现在发现其实博客这个东西还是不错的,马上开始我的android博客搬家之旅。


首先我们谈谈事件分发本质

答:将点击事件(MotionEvent)向某个View进行传递并最终得到处理

即当一个点击事件发生后,系统需要将这个事件传递给一个具体的View去处理。这个事件传递的过程就是分发过程。

然后想想事件是在哪些对象之间进行传递?

答:Activity、ViewGroup、View

一个点击事件产生后,传递顺序是:Activity>ViewGroup>View

Android的UI界面是由Activity、ViewGroup、View及其派生类组合而成的


View是所有UI组件的基类

一般Button、ImageView、TextView等控件都是继承父类View

ViewGroup是容纳UI组件的容器,即一组View的集合(包含很多子View和子VewGroup),

1、其本身也是从View派生的,即ViewGroup是View的子类。

2、是Android所有布局的父类或间接父类:项目用到的布局(LinearLayout、RelativeLayout等),都继承自ViewGroup,即属于ViewGroup子类。

3、与普通View的区别:ViewGroup实际上也是一个View,只不过比起View,它多了可以包含子View和定义布局参数的功能。

最后,事件分发过程由哪些方法协作完成?

答:dispatchTouchEvent() 、onInterceptTouchEvent()和onTouchEvent()


原创粉丝点击