onTouch 和 onTouchEvent 的区别

作者: 陈利健 | 来源:发表于2015-01-10 14:59 被阅读640次

    1.onTouch方法:

    onTouch方法是View的 OnTouchListener接口中定义的方法。

    当一个View绑定了OnTouchLister后,当有touch事件触发时,就会调用onTouch方法。(当把手放到View上后,onTouch方法被一遍一遍地被调用),这个方法有返回值 false 和true

    2.onTouchEvent方法:

    onTouchEvent方法是override 的Activity的方法。

    覆写了Activity的onTouchEvent方法后,当屏幕有touch事件时,此方法就会别调用。

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

    3.touch事件的传递:

    在一个Activity里面放一个TextView的实例tv,绑定onTouchClickListener监听器,并且这个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方法中,传入的肯定是event对象,一般都是执行switch判断语句,来判断传入的event对象是什么, 使用event.getAction()方法。

    相关文章

      网友评论

      本文标题:onTouch 和 onTouchEvent 的区别

      本文链接:https://www.haomeiwen.com/subject/wlbfxttx.html