手指按下的时候ViewGroup 会调用dispatchTouchEvent-> image.png
接着就执行了
image.png
image.png
走到了子View的dispatchTouchEvent->会调用onTouchEvent如果返回为false的话result是不会等于true的
返回值就是false
image.png
image.png
关键来了-> 如果子View
dispatchTouchEvent返回false 父布局dispatchTransformedTouchEvent也返回false
dispatchTouchEvent里面的的 newTouchTarget = addTouchTarget(child, idBitsToAssign);就不会执行下面的 if(mFirstTouchTarget != null)的判断都不会走
下一次进来的时候 因为mFirstTouchTarget ==null 而且不是按下事件intercepted=true
image.png
再往下走因为 !intercepted = false进不了下面的判断
里面的for循化 事件分发等都不会执行 所以onTouchEvent就不会执行
image.png
网友评论