【Android开发坑系列】之事件
2015-09-07 13:42
429 查看
总结一下:
1.Touch事件分发中只有两个主角:
ViewGroup和View。
ViewGroup包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三个相关事件。View包含dispatchTouchEvent、onTouchEvent两个相关事件。其中ViewGroup又继承于View。
2.触摸事件由Action_Down、Action_Move、Aciton_UP组成,其中一次完整的触摸事件中,Down和Up都只有最多一个,Move有若干个,可以为0个。
定律:当dispatchTouchEvent在进行事件分发的时候,只有前一个action返回被处理(消费)掉,才会触发后一个action。
3.事件传递的两种方式:
隧道方式:从根元素依次往下传递直到最内层子元素或在中间某一元素中由于某一条件停止传递;
冒泡方式:从最内层子元素依次往外传递直到根元素或在中间某一元素中由于某一条件停止传递。
dispatchTouchEvent是隧道方式,onTouchEvent是冒泡方式(若返回true,则上层不再处理)。
4.onInterceptTouchEvent有两个作用:
拦截Down事件的分发;
中止Up和Move事件向目标View传递,使得目标View所在的ViewGroup捕获Up和Move事件。
参考:http://blog.csdn.net/liutao5757124/article/details/6097125
1.Touch事件分发中只有两个主角:
ViewGroup和View。
ViewGroup包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三个相关事件。View包含dispatchTouchEvent、onTouchEvent两个相关事件。其中ViewGroup又继承于View。
2.触摸事件由Action_Down、Action_Move、Aciton_UP组成,其中一次完整的触摸事件中,Down和Up都只有最多一个,Move有若干个,可以为0个。
定律:当dispatchTouchEvent在进行事件分发的时候,只有前一个action返回被处理(消费)掉,才会触发后一个action。
3.事件传递的两种方式:
隧道方式:从根元素依次往下传递直到最内层子元素或在中间某一元素中由于某一条件停止传递;
冒泡方式:从最内层子元素依次往外传递直到根元素或在中间某一元素中由于某一条件停止传递。
dispatchTouchEvent是隧道方式,onTouchEvent是冒泡方式(若返回true,则上层不再处理)。
4.onInterceptTouchEvent有两个作用:
拦截Down事件的分发;
中止Up和Move事件向目标View传递,使得目标View所在的ViewGroup捕获Up和Move事件。
参考:http://blog.csdn.net/liutao5757124/article/details/6097125
相关文章推荐
- 两个简单实例,学会使用fragment
- android 介绍0
- androidの自定义加载对话框ProgressDialog
- 解密短信木马为何屡杀不尽--android手机短信木马的攻与防
- android模糊效果blur
- Android内核解读-Android系统的开机启动过程
- android-修改TextView中部分文字的颜色
- android 自定义dialog弹出和消失动画
- Android复制粘贴到剪贴板
- Android ListView滑动过程中控件显示重复/错误问题之原理分析及解决方案
- Android数据存储之SharePreference
- Activity生命周期之横竖屏切换
- Android高效加载大图、多图解决方案,有效避免程序OOM
- Android中ListView数据绑定和获取内部控件
- Android中数据存储之sqlite
- 野人学Android基础篇之异步任务第一课--AsyncTask原理简介及例子
- Mac下AndroidStudio常用快捷键整理
- Android PopupWindow
- Android 基于ShareSDK的Facebook第三方登录
- android Log工具框架,LogUtils让你摆脱TAG的魔爪