简单地做一下个人的记录
发现了view invisible的时候 点击事件就无效了(以前一直以为的view onTouchEvent消费与否都看clickable)
最后log了下view的onTouchEvent才发现原因初代view group dispatch的过程中
伪代码如下
for(;;) {
if (!canViewReceivePointerEvents(child)
|| !isTransformedTouchPointInView(x, y, child, null)) {
ev.setTargetAccessibilityFocus(false);
continue;
}
}
canViewReceivePointerEvents
private static boolean canViewReceivePointerEvents(@NonNull View child) { return (child.mViewFlags & VISIBILITY_MASK) == VISIBLE || child.getAnimation() != null; }
亏我log了那么久,在onTouchEvent里找!以后一定要用demo做出大部分的结论,定位到问题,(这个时间段久一点不怕)再去看源码,这样效率才高!!!