二、Android事件分发
来源:互联网 发布:login incorrect linux 编辑:程序博客网 时间:2024/05/08 08:43
Android事件分发
涉及类:Activity、ViewGroup、View
Activity、View:dispatchTouchEvent、onTouchEvent
ViewGroup:dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent
事件由1个down,多个move,以及一个up组成。如果down返回false,则后续事件不再接收。
View:
disPatchTouchEvent:
判断3个条件:1、onTouchListener不为空
2、enable为true
3、onTouch返回true
如果3个条件都满足则返回true,事件由disPatchTouchEvent消费(实际由onTouch消费),如果不满足,则执行自己的onTouchEvent。
onTouchEvent:如果控件可点击,则返回true(代表事件被接收)然后判断是否有onClickListener,有则执行;如果不可点击,则直接返回false(代表事件不能接收,后续事件也不再接收)。
ViewGroup:
disPatchTouchEvent:
判断2个条件:1、disallowIntercept(默认false,通过requestDisallowINterceptTouchEvent设置更改)
2、!onInterceptToucheEvent
两个条件满足一个,则for循环遍历viewGroup下的子view是否是正在点击的view,如果是则调用该view的dispatchTouchEvent。如果该view的dispathcTouchEvent返回true,则vieGroup的dispatchTouchEvent也返回true,导致ViewGroup的touch事件无法执行;如果循环没有找到匹配的view,则执行super.dispatchTouchEvent,即View类的dispatchTouchEvent。
onInterceptTouchEvent:返回false,配合上面表示不打断,进入遍历循环;
onTouchEvent:同View。
cancel事件:down事件接收后,后续事件被父布局拦截(如超出范围),则会下发cancel事件。
- 二、Android事件分发
- Android事件分发二
- Android事件分发<二>
- Android的事件分发(二)
- android事件分发(二)
- Android事件的分发(二)
- Android事件分发(二)
- Android事件分发(二)
- Android事件分发机制二
- Android触屏事件(二、事件分发)
- Android View、ViewGroup 事件分发机制(二)
- Android事件分发机制--ViewGroup(二)
- Android事件分发机制--ViewGroup(二)
- Android事件分发机制完全解析(二)
- Android的事件分发机制(二)
- android事件分发教程(二):ViewGroup
- android事件分发(二)源码源码
- android-----事件分发机制测试系列(二)
- poj 1386 单词连接 欧拉图+并查集判连通
- Cocos2d-js 事件处理机制
- Java常量池理解与总结
- MySql数据库引擎分析
- hive null
- 二、Android事件分发
- ViewBag的使用
- JS 生成从n~m的随机数字
- 不能错过的 10 篇 Java 热文
- JS字符串包含
- 每天都要有个为自己的计划。 照着来,这样才能有效率
- JS 基础教程八
- 【总结】为什么ITOO学生端Redis采用list结构
- JS 基础教程九