- 通过dispatchTouchEvent先确认MotiveEvent有没有分发到目标View。
- 如果有分发过来说明,目标View可以接收到事件。
- 强制将onInterceptTouchEvent设置为true,拦截掉事件。看下目标View能否消耗事件(回调onClick)。
- 如果能够消耗,排查目标View中的子View,有没有能够消耗点击事件的,方便排查可以将子View的clickable都设置为false。
- 如果目标View拦截点击事件后,发现还是没有消耗该事件(onClick没有回调)。那就还有一种情况。
- 这种情况多存在于事件注入场景,那就是down和up之间的时间间隔不够100ms,没有被系统判断为是一个点击事件。所以没有回调。具体逻辑可以看:github.com/aosp-mirror…