事件分发机制
来源:互联网 发布:c语言单引号字符 编辑:程序博客网 时间:2024/06/06 12:45
一、前言
最近一直对事件分发机制理解有点模糊,今天看了一个博客,感觉有点渐渐的清晰,遂提笔记下,以便今后查阅。
二、总结
事件分发机制,就是发生点击事件之后,父view会遍历自己所有的子view,来查找到底哪个view处理此事件,在这个过程中,会出现三个方法:dispatchTouchEvent(MotionEvent ev),oninterceptTouchEvent(MotionEvent ev),onTouchEvent(MotionEvent ev)。下面就简单介绍一下这三个方法:
1、事件分发
dispatchTouchEvent(MotionEvent ev):这个函数负责事件的分发,决定事件是否交给onInterceptTouchEvent(MotionEvent ev)来处理。
当返回true时,不会继续分发事件,内部处理所有事件(ACTION_DOWN,ACTION_MOVE,ACTION_UP)
当返回false时,会继续分发事件,内部只处理了ACTION_DOWN事件。
当返回super.dispatchTouchEvent时,由onInterceptTouchEvent来决定事件的流向,
2、事件拦截
onInterceptTouchEvent(MotionEvent ev):负责事件的拦截,决定事件是否传给子view,这个方法是viewgroup独有的.
当返回true时,拦截此事件,然后交给自己的onTouchEvent来处理。
当返回false时,不拦截此事件,交给子view来处理
3、事件响应
onTouchEvent(MotionEvent ev):事件最终到达的地方
当返回true时,表示onTouchEvent处理完事件之后消费了此事件,此事件终结,
当返回false时,不响应此事件,那么该事件将不断的向上层view的onTouchEvent传递,知道某个view的onTouchEvent方法返回true,如果到了顶层仍然返回false,那么认为此事件不被消耗。将会交于activity的onToucEvent来响应。
三、最后贴上两个博客,吃水不忘挖井人
传送门
传送门
- OnTouchEvent事件分发机制
- android事件分发机制
- Android事件分发机制
- Android 事件分发机制
- Android事件分发机制
- Android 事件分发机制
- Android 事件分发机制
- android 事件分发机制
- Android事件分发机制
- android 事件分发机制
- android事件分发机制
- Android 事件分发机制
- android事件分发机制
- 【cocos2dx事件分发机制】
- android 事件分发机制
- android 事件分发机制
- Android 事件分发机制
- Android事件分发机制
- iOS事件响应链中Hit-Test View的应用
- 浅谈React表单组件
- A3.1节
- J2EE系列之Hibernate4学习笔记(五)--关联关系一对多映射
- java中统一方法进行切面管理
- 事件分发机制
- MSSQL 数据库被标记为SUSPECT状态,如何恢复?
- 一个简单的Http客户端Demo
- 数组正负值排序
- android 将图片变为圆角
- mysql5.5 版本以上utf8 支持 emoji表情
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
- 如何获取当前GPS坐标附近最近的地点名称?
- 关于Unity坐标系转换