Android中ontouchlistener和ontouchevent事件的区别

    最显著的区别为onTouchListener的接口的优先级是要高于onTouchEvent
    也就是说,如果ontouchlistener中的ontouch方法返回了true,就说明本次的触摸事件已经被消费了。比ontouchlistener优先级低的ontouchevent就收不到消息。
    同理,button的click事件是通过ontouchevent实现的,当在ontouchlistener监听返回true后,也就意味着button的点击事件失效。

例如,Google中对于dispatchTouchEvent的实现:
public boolean dispatchTouchEvent(MotionEvent event){
        ... ...
        if(onFilterTouchEventForSecurity(event)){
            ListenerInfo li = mListenerInfo;
            if(li != null && li.mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED
                && li.mOnTouchListener.onTouch(this, event)) {
                return true;
            }
            if(onTouchEvent(event)){
                return true;
            }
        }
        ... ...
        return false;
    }
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lx331675996/article/details/49944029
文章标签: ontouch
个人分类: Android初探
下一篇Android图片二进制与Bitmap、Drawable之间的转换
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭