Android事件分派机制
来源:互联网 发布:蓝格网络酒店 编辑:程序博客网 时间:2024/06/06 01:30
最近一直在学习Android里面的事件分派机制,感觉很奇妙,看了很多博客和分析,才在脑子里形成了一个模糊的概念,对事件分派有了一定的认识。
于是,我画了一个图来简单明了的表述Android中事件的分派机制:
看了这个图,说起来就简单了。
假设一个视图结构如左上角所示,最外面的父控件是一个ViewGroup A,内一层是ViewGroup B,最最里面的控件是View C。
当用户去点击View C的时候,最先触发的是ViewGroup A的onInterceptTouchEvent()方法。这个方法是用来阻断事件的。
如果返回false(默认返回false),事件就会继续向内层传递。
内层如果是ViewGroup的话,事件就先传递到ViewGroup的onInterceptTouchEvent()方法上,作用也是一样的,用来阻断事件。
内层如果是View的话,就直接传递到View的onTouchEvent()上面了
如果返回true,就不向内层传递了,就把事件发给自己的onTouchEvent()方法。
当事件传递到onTouchEvent()方法的时候,这个方法主要用来处理事件。
如果返回true,就代表自己来处理这个事件,那么事件就不会继续向下传递了。事件被消费了。
如果返回false的话,就会向上一层父控件传递。
突然发现就是这么回事,一开始看别人的文章也看了好久没看明白。
了解事件分派机制是比较有用的,比如,下拉刷新,当前显示了一个ListView展示数据,假设当前ListView是显示最顶部的内容,用户手向上滑动的时候,操控的是ListView,用户手向下滑动的时候就要把上面隐藏的视图拉出来,这个时候操控的就是整个ViewGroup。大概就是这么个意思吧……下拉刷新我还没自己实现出来。T.T
转载请注明出处,哈哈哈哈:http://www.cnblogs.com/kross/p/3467285.html
- Android事件分派机制
- Android事件分派机制
- Android事件分派机制
- Android滑动事件分派机制
- Tapestry5 事件分派机制
- Tapestry5 事件分派机制
- Tapestry5 事件分派机制
- Android事件的分派处理
- I/O事件分派
- WinX消息分派机制
- 关于Java的事件分派机制及两个可能的语言扩展
- adobe air 分派状态事件
- JBPM的任务分派机制
- JBPM的任务分派机制
- WINX的消息分派机制
- JBPM的任务分派机制
- JBPM的任务分派机制
- JBPM的任务分派机制
- 十六周项目二----指来指去2
- android 消失软件盘
- 一些简单的编程练习题
- C++上的机器视觉库
- static、extern、exit用法
- Android事件分派机制
- spring mvc的乱码 post请求的响应
- Css Hack(IE,FF,Chrome,Opera)
- 100个受欢迎的video lectures 上的视频
- Vim使用笔记
- 修改JAVA_HOME无效,java版本保持不变的问题解决
- 来年再战
- VIP不能正常启动,报错CRS-1006
- mysql批量插入语句