Android onTouchEvent和setOnTouchListener中onTouch的区别
2015-06-20 12:02
501 查看
OnTouchEvent()方法
是获取的对屏幕的各种操作,比如向左向右滑动,点击返回按钮等等。
属于一个宏观的屏幕触摸监控。
OnTouchListener()方法
是获取某一个控件某一个View的点击监控。
官方文档:http://developer.android.com/ref
... nTouchListener.html
两者很容易区分。
区别如下:
1、如果setOnTouchListener中的onTouch方法返回值是true(事件被消费)时,则onTouchEvent方法将不会被执行;
2、只有当setOnTouchListener中的onTouch方法返回值是false(事件未被消费,向下传递)时,onTouchEvent方法才被执行。
3、以上说的情况适用于View对象(事件会最先被最内层的View对象先响应)而不是ViewGroup对象(事件会最先被最外层的View对象先响应)。
综合来讲:
onTouchListener的onTouch方法优先级比onTouchEvent高,会先触发。
假如onTouch方法返回false,会接着触发onTouchEvent,反之onTouchEvent方法不会被调用。
内置诸如click事件的实现等等都基于onTouchEvent,假如onTouch返回true,这些事件将不会被触发。
是获取的对屏幕的各种操作,比如向左向右滑动,点击返回按钮等等。
属于一个宏观的屏幕触摸监控。
OnTouchListener()方法
是获取某一个控件某一个View的点击监控。
官方文档:http://developer.android.com/ref
... nTouchListener.html
两者很容易区分。
区别如下:
1、如果setOnTouchListener中的onTouch方法返回值是true(事件被消费)时,则onTouchEvent方法将不会被执行;
2、只有当setOnTouchListener中的onTouch方法返回值是false(事件未被消费,向下传递)时,onTouchEvent方法才被执行。
3、以上说的情况适用于View对象(事件会最先被最内层的View对象先响应)而不是ViewGroup对象(事件会最先被最外层的View对象先响应)。
综合来讲:
onTouchListener的onTouch方法优先级比onTouchEvent高,会先触发。
假如onTouch方法返回false,会接着触发onTouchEvent,反之onTouchEvent方法不会被调用。
内置诸如click事件的实现等等都基于onTouchEvent,假如onTouch返回true,这些事件将不会被触发。
相关文章推荐
- Android Studio分模块自动化构建实战
- Android屏幕适配
- Android studio: Gradle DSL method found: 'android()'!及Gradle DSL method not found: 'runProguard()'错误
- Android学习第二课:Assets资源文件读取及AssetManager介绍
- Android 版本更新
- 定制个性化的 Android Checkbox 图标
- android学习笔记(五)——android的存储1 sharedpreferences介绍
- 【Android 动画】Property Animation详解(二)
- Android中.9.png图片的使用过程和原理
- Android中实现静态的默认安装和卸载应用
- Android安装卸载apk包
- 关于android 如何安装 assets文件下的apk
- Android开发之成语连连看
- android socket通信控制电脑关机
- android.content.ActivityNotFoundException: No Activity found to handle Intent
- 解剖Android USB MTP 的激活流程
- android点滴记录
- Android数据库高手秘籍(八)——使用LitePal的聚合函数
- Android数据库高手秘籍(七)——体验LitePal的查询艺术
- Android数据库高手秘籍(六)——LitePal的修改和删除操作