Android onTouchEvent和setOnTouchListener中onTouch的区别

 我来答
好程序员
2016-05-30 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
Android onTouchEvent和setOnTouchListener中onTouch的区别:
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,这些事件将不会被触发。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式