剖析touch事件在View中的传递
2015-09-20 13:50
176 查看
话不多说,直奔主题,先来看一张图
版权申明:这是csdn上别人的图,我觉得有用,就拿过来了,
然后简单说明下:
总的来说,触摸事件是从最外层的ViewGroup,一级一级传递进来的
和这相关的每个View的回调方法有三个,dispatchTouchEvent,onInterceptTouchEvent,以及大家都熟悉的ouTouchEvent
事件传递到一个View(ViewGroup),先回调到dispatchTouchEvent()方法,这里如果不super的话,就直接只执行当前代码了,super的话,到onInterceptTouchEvent()方法,这里比较关键,返回false的话,说明不拦截,继续往下传,true的话,说明拦截,直接截断了传递链,然后转到本View的ouTouchEvent方法,整个就结束了。
继续传递的话,如果都没有拦截,就从子View的onTouchEvent方法一直传上来,传到顶层的View,假如传递链中间一个View的onTouchEvent返回true的话,
说明这个View已经处理事件了,就到此为止了,不往上传递了。
好了,View传递机制的解说就到此为止,欢迎大家关注我的另外几篇博客,接下来一篇准备讲解Actionbar,明天再写吧
版权申明:这是csdn上别人的图,我觉得有用,就拿过来了,
然后简单说明下:
总的来说,触摸事件是从最外层的ViewGroup,一级一级传递进来的
和这相关的每个View的回调方法有三个,dispatchTouchEvent,onInterceptTouchEvent,以及大家都熟悉的ouTouchEvent
事件传递到一个View(ViewGroup),先回调到dispatchTouchEvent()方法,这里如果不super的话,就直接只执行当前代码了,super的话,到onInterceptTouchEvent()方法,这里比较关键,返回false的话,说明不拦截,继续往下传,true的话,说明拦截,直接截断了传递链,然后转到本View的ouTouchEvent方法,整个就结束了。
继续传递的话,如果都没有拦截,就从子View的onTouchEvent方法一直传上来,传到顶层的View,假如传递链中间一个View的onTouchEvent返回true的话,
说明这个View已经处理事件了,就到此为止了,不往上传递了。
好了,View传递机制的解说就到此为止,欢迎大家关注我的另外几篇博客,接下来一篇准备讲解Actionbar,明天再写吧
相关文章推荐
- gnome3
- Win2008 R2中IIS7.5配置完网站权限不足问题的解决方法
- 23设计模式之工厂方法(FactoryMethod)
- 使用VS2015编译openssl1.0.1p
- 杭州出租车改革:“破冰”后期待最终破题
- Access, SQL Server, Oracle, MySQL的区别与相似
- OpenCV图像的基础叠加
- ubuntu安装配置jdk1.7
- 读书笔记之《程序员的自我修养——链接、装载与库》
- 基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
- javascript 一次开发,多平台运行
- LeetCode 5 Longest Palindromic Substring(最大回文子字符串)
- SSO单点登录
- Python 类 --基础与要点
- MVC 异步请求
- vim中同时打开多个文件 同时显示多个窗口
- MySQL数据库
- 在PPT2007中制作礼花绽放动画效果ppt模板打包下载
- python获取对象信息type、dir、getattr、setattr
- 二十9天 月出冲击黑鸟 —Spring的AOP_AspectJ @annotation