Android onTouchEvent和setOnTouchListener中onTouch的区别
2015-11-02 14:02
609 查看
http://blog.csdn.net/shineflowers/article/details/41080435
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,这些事件将不会被触发。
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,这些事件将不会被触发。
相关文章推荐
- Android获取跳转URI及携带的参数
- Android资源文件R.string.hello_world与getResources().getString(id)
- 刚整理了份Android权限Uri.parse的资料
- Android中动态添加View的两种方式
- Android记录20-获取缓存大小和清除缓存功能
- Android根据屏幕宽度缩放图片
- 查看Android应用包名package和入口activity名称
- 如何获取清单文件AndroidManifest中meta_data元素的信息
- android学习之Activity的生命周期
- 彻底解决Android系统A-GPS搜不到卫星的问题!
- Android滑动解锁控件
- Android快速开发系列 10个常用工具类
- 搜索 录音功能 Android api
- Android之路-启程2:Android开发环境简介以及编写第一个应用程序“HelloWorld”
- android从通讯录中选择联系人并读取号码
- Android动画之补间动画
- Android开发时图片Bitmap序列化问题(How to fix a java.io.NotSerializableException: android.graphics.Bitmap)
- Android:onNewIntent()触发机制及注意事项
- android短信备份报 java.lang.IllegalArgumentException错误
- 手机通知功能Notification