平时使用的时候可能我们不会关注到源码,今天从源码里面查看一下
查看View事件我们看dispatchTouchEvent就可以了,我会会看到里面有一段代码
ListenerInfo li = mListenerInfo;if (li != null && li.mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED && li.mOnTouchListener.onTouch(this, event)) { result = true;} if (!result && onTouchEvent(event)) { result = true;}
可以看到mOnTouchListener !=null和ENABLED==true 来控制是否可以调用onTouch事件,所以setOnTouchListener和setOnClickListener同时存在的时候,就会先执行onTouch,在onTouchEvent里面有处理点击事件
网友评论