View的事件体系——事件分发机制
来源:互联网 发布:5173游戏交易平台源码 编辑:程序博客网 时间:2024/06/06 16:58
ViewGroup事件传递方法:
dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent
(1)—dispatchTouchEvent:当前view接到事件调用的方法,返回boolean类型值,会调用如下伪代码逻辑,所以返回值会受自己的
onTouchEvent和子类的dispatchTouchEvent返回值决定。
(2)—onInterceptTouchEvent:负责是否拦截事件,返回boolean类型值,返回true则表示拦截,返回false则不拦截,默认值返回false,在同一事件序列中,返回true则调用当前view的onTouchEvent,返回false则调用子view的事件序列,如果onInterceptTouchEvent在某个事件中返回true,下次的序列事件不再调用onInterceptTouchEvent方法,dispatchTouchEvent直接掉到onTouchEvent.
(3)—onTouchEvent:负责处理事件,返回boolean类型值
View的事件传递方法:
dispatchTouchEvent、 onTouchEvent
ViewGroup和View事件传递关系如下(伪代码)
public boolean dispatchTouchEvent(MotionEvent event){ boolean consume=false; //如果onInterceptTouchEvent返回true,则不调用子类事件 if(onInterceptTouchEvent(event)){ //调用自己的 onTouchEvent事件 consume=onTouchEvent(event); }else{ //调用子类得dispatchTouchEvent事件进行向下传递 consume=child.dispatchTouchEvent(event); } return consume; }
手指触摸到滑动到抬起的事件过程
(1)触摸:
(2)滑动:滑动时不断调用此流程
(3)抬起:
处理滑动冲突方法
1.水平和竖直滑动冲突:比如scrllVIew嵌套listview
判断水平滑动和竖直滑动的移动距离差,水平>竖直 则水平滑动,反之。
2.同一方向滑动冲突,比如listview嵌套listview
这个必须有需求限定的,比如内部listview滑动到顶部了,则再滑动时,则事件交由外部的listview处理,同方向的滑动,是需要项目需求然后再定规则,只要处理滑动时执行的流程,在流程中做好自己的限制就可以实现自己的解决方案。
- View的事件体系——事件分发机制
- Android——View的事件体系(二)View的事件分发机制
- View的事件体系之--View的事件分发机制
- Android —View的事件分发机制
- Android进阶系列1—View的事件分发体系
- View的事件体系之View位置参数与View事件分发机制
- Android中View的事件体系(2)——View滑动与事件分发
- 《View的事件体系》(四)View的事件分发机制
- 学习笔记:View的事件体系4:View的事件分发机制
- View 的事件分发机制
- View的事件分发机制。
- View的事件分发机制
- View的事件分发机制
- view的事件分发机制
- View的事件分发机制
- View的事件分发机制
- View的事件分发机制
- view的事件分发机制
- G
- linux上给用户加权限
- 《深度学习》/《Deep Learning》——深度学习圣经的读书笔记
- Unity打android包时出现64K limitation
- c语言中关于杨氏矩阵的算法应用
- View的事件体系——事件分发机制
- JavaScript&jQuery交互式Web前端开发
- 线性表
- DenseNet--Densely Connected Convolutional Networks
- C#与MATLAB混合编程
- 二分法查找
- git 快速入门
- nao机器人使用
- ES6之模板字符串(Template String)