onTouch之后onclick的执行情况

入口:View.java的dispatchTouchEvent()
下图是方法中的重要代码:
onTouch之后onclick的执行情况
1,首先看一下li是什么:
onTouch之后onclick的执行情况
onTouch之后onclick的执行情况
由上述代码可见,li不会为空;
2,再看li.mOnTouchListener是否为空
onTouch之后onclick的执行情况
由上代码看出,li.mOnTouchListener是我们自己写的touchListener不会为空;
3,再看 (mViewFlags & ENABLED_MASK) == ENABLED,这代表控件是否可点击;一般没有特别设定,控件都是可点击的,所以也为true;
4,所以当我们传进的onTouch为true的时候,result为true,!result为false,后面不执行,也就是onclick不会执行。当返回为false的时候,onclick就会执行。