安卓事件分发机制

安卓事件分发:事件列都是以DOWN事件开始、UP事件结束,中间有无数的MOVE事件,还有可能人员原因事件的cancel事件

事件分发的本质:
将点击事件(MotionEvent)传递到某个具体的View & 处理的整个过程
即 事件传递的过程 = 分发过程。

事件分发在Activity、ViewGroup、View及其派生类组成间传递

ViewGroup其本身也是view的子类,是安卓所有布局的父类,ViewGroup实际也是一个view,只是多了可包含子view定义布局参数的功能

例如:
1.首先会将点击事件传递到Activity中,具体是执行dispatchTouchEvent()进行事件分发
2.用户点击具体view控件,然后ViewGroup.dispatchTouchEvent,ViewGroup.onInterceptTouchEvent(事件拦截 false,true),false允许事件继续向子view传递(寻找被点击的子view(遍历所有子view,找到被点击的子view,调用子view控件的dispatchTouchEvent)), true(需要手动复写设置)不允许事件继续向子view传递(事件返回父类,ViewGroup父类dispatchTouchEvent,然后滴哦用自己的OnTouch -> onTouchEvent -> performClick ->OnClick)结束

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容