【Android View事件分发机制】关于拦截事件的注意点
来源:互联网 发布:iphone6s怎么下载软件 编辑:程序博客网 时间:2024/06/15 19:44
在父容器拦截事件时,为什么不能拦截DOWN事件呢?
先看看源码:
回顾一下事件分发机制原理,当事件来了之后,如果父容器不拦截,则会询问其child view ,当某child view 有事件需求,父容器会记住它并存在mFirstTouchTarget中。
- 在上图第一个红框中,DOWN事件来临,如果被拦截,intercepted为true
- 在上图第二个红框中,intercepted因为为true则无法进入该分支中,而该分支正是 询问child view 是否有事件需求的代码块,得不到执行,则mFirstTouchTarget一直未空。
- 其他事件来临,而不再是DOWN且mFirstTouchTarget==null,在上图第一个红框中,onInterceptTouchEvent不能被执行到。所以intercepted一直保持为true.
* intercepted一直保持为true的结果是:所有后续的事件都交给了父容器自身处理,即使我们让onInterceptTouchEvent返回了false。这并不是我们想要的结果。
反向拦截控制requestDisallowInterceptTouchEvent
一般拦截控制都是由父容器在onInterceptTouchEvent来做的。但requestDisallowInterceptTouchEvent给了child view一个要求父容器停止拦截事件的权利。
Up事件拦截问题
up事件被拦截后,child view 可能存在onClick的响应问题。
0 0
- 【Android View事件分发机制】关于拦截事件的注意点
- Android View事件分发、拦截、消费机制
- Android View事件分发、拦截、消费机制
- Android中View的事件分发和拦截机制
- Android中View的事件分发和拦截机制
- Android中View的事件分发和拦截机制
- View事件的分发拦截机制流程
- android事件分发机制 VIew的事件分发机制
- 关于Android事件分发机制一些要注意的问题
- Android事件的分发与拦截机制
- Android 事件分发机制解析之View的事件分发
- View的事件分发拦截
- android View事件分发和事件拦截
- android中view的事件分发机制
- Android之View的事件分发机制
- Android View的事件分发机制
- Android View的事件分发机制
- Android中View的事件分发机制
- linux下unlink的使用
- Linux Namespace
- Deadline
- hdfs shell命令
- 什么叫方法重载?构造方法可以重载吗?
- 【Android View事件分发机制】关于拦截事件的注意点
- dedecms实现复制文章自动添加版权出处信息的方法
- java基础技术知识点总结——super、this关键字
- react demo8 (设置组件自身属性this.props.children)
- Nginx——特性介绍及安装
- kubernetes 1.3 的安装和集群环境部署
- 强大的datatables
- 11G R2 重做redo日志
- 说明类变量和实例变量的区别