onTouch与onTouchEvent的区别有哪些-创新互联

onTouch与onTouchEvent的区别有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

从网站建设到定制行业解决方案,为提供成都网站建设、网站制作服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联将不断加快创新步伐,提供优质的建站服务。

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的区别有哪些-创新互联
转载源于:http://pwwzsj.com/article/gsodp.html