【Android】【事件】onInterceptTouchEvent(),onTouchEvent()
2016-03-23 16:54
295 查看
onInterceptTouchEvent()是ViewGroup的一个方法,目的是在各个childView触发onTouchEvent()之前对相关事件进行一次拦截。
基本原理:如果return true,直接事件传递结束,如果return false,那么表示该方法并未处理完全,仍需传递下去继续等待处理。
具体规则:
down事件首先会传递到onInterceptTouchEvent()方法
如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return false,那么后续的move, up等事件将继续会先传递给该ViewGroup,之后才和down事件一样传递给最终的目标View的onTouchEvent()处理。
如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return true,那么后续的move, up等事件将不再传递给onInterceptTouchEvent(),而是和down事件一样传递给该ViewGroup的onTouchEvent()处理,注意,目标View将接收不到任何事件。
如果最终需要处理事件的View的onTouchEvent()返回了false,那么该事件将被传递至其上一层次的ViewGroup的onTouchEvent()处理。
如果最终需要处理事件的view 的onTouchEvent()返回了true,那么后续事件将可以继续传递给该view的onTouchEvent()处理。
基本原理:如果return true,直接事件传递结束,如果return false,那么表示该方法并未处理完全,仍需传递下去继续等待处理。
具体规则:
down事件首先会传递到onInterceptTouchEvent()方法
如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return false,那么后续的move, up等事件将继续会先传递给该ViewGroup,之后才和down事件一样传递给最终的目标View的onTouchEvent()处理。
如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return true,那么后续的move, up等事件将不再传递给onInterceptTouchEvent(),而是和down事件一样传递给该ViewGroup的onTouchEvent()处理,注意,目标View将接收不到任何事件。
如果最终需要处理事件的View的onTouchEvent()返回了false,那么该事件将被传递至其上一层次的ViewGroup的onTouchEvent()处理。
如果最终需要处理事件的view 的onTouchEvent()返回了true,那么后续事件将可以继续传递给该view的onTouchEvent()处理。
相关文章推荐
- Android源代码的获取
- android解压zip格式的包
- 理解android:targetSdkVersion
- 关于Android中XML解析方式
- Android 6.0 运行时权限处理
- Android学习笔记(32):通知推送Notification
- Android入门——Activity生命周期和横竖屏切换总结
- Android事件分发
- Android学习笔记(31):滚动视图ScrollView
- Android学习笔记(30):选项卡TabHost
- Android NDK编程
- android提供的json解析类
- Android学习笔记(29):搜索框SearchView
- android进阶之旅,初级试水型探索(activity四种启动模式详解)
- Android学习笔记(28):三种选择器DatePicker_TimePicker_NumberPicker
- Android 三大图片缓存原理、特性对比
- Android学习笔记(27):日历视图Calendar
- android自定义View中getWidth和getHeight返回0
- Android快速开发--使用ORMLite操作数据库
- 【Android基础】setTextColor(),setBackgroundColor的参数设置方式