老生常谈onTouch和onTouchEvent(必看篇)

老生常谈onTouch和onTouchEvent(必看篇),第1张

概述1.onTouch和onTouchEvent,都是在dispatchTouchEvent()中调用,onTouch优先于onTouchEvent执行。如果在onTouch方法中通过返回true将事件消费掉,onTouchEvent将不会再执行。另外需要注意的是,onTouch能够得到执行需

1.ontouch和ontouchEvent,都是在dispatchtouchEvent()中调用,ontouch优先于ontouchEvent执行。如果在ontouch方法中通过返回true将事件消费掉,ontouchEvent将不会再执行。另外需要注意的是,ontouch能够得到执行需要两个前提条件,第一mOntouchListener的值不能为空,第二当前点击的控件必须是enable的。因此如果你有一个控件是非enable的,那么给它注册ontouch事件将永远得不到执行。对于这一类控件,如果我们想要监听它的touch事件,就必须通过在该控件中重写ontouchEvent方法来实现。

1、ontouch方法:

ontouch方法是VIEw的 OntouchListener借口中定义的方法。

当一个VIEw绑定了OntouchLister后,当有touch事件触发时,就会调用ontouch方法。

(当把手放到VIEw上后,ontouch方法被一遍一遍地被调用)

2、ontouchEvent方法:

ontouchEvent方法是overrIDe 的Activity的方法。

重新了Activity的ontouchEvent方法后,当屏幕有touch事件时,此方法就会别调用。

(当把手放到Activity上时,ontouchEvent方法就会一遍一遍地被调用)

3、touch事件的传递:

在一个Activity里面放一个TextVIEw的实例tv,并且这个tv的属性设定为 fill_parent

在这种情况下,当手放到屏幕上的时候,首先会是tv响应touch事件,执行ontouch方法。

如果ontouch返回值为true,

表示这个touch事件被ontouch方法处理完毕,不会把touch事件再传递给Activity,

也就是说ontouchEvent方法不会被调用。

(当把手放到屏幕上后,ontouch方法被一遍一遍地被调用)

如果ontouch的返回值是false,

表示这个touch事件没有被tv完全处理,ontouch返回以后,touch事件被传递给Activity,

ontouchEvent方法被调用。

以上这篇老生常谈ontouch和ontouchEvent(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的老生常谈onTouch和onTouchEvent(必看篇)全部内容,希望文章能够帮你解决老生常谈onTouch和onTouchEvent(必看篇)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存