找出哪个 View 消耗了触摸事件(如果有)

ris*_*en0 5 android android-custom-view android-view motionevent android-touch-event

我正在解决一个与视图相关的问题:一个点击监听器在它应该触发的时候没有被触发。经过长时间的反复试验,我发现父视图被禁用,因此将所有事件丢弃给其子视图。

在 Android 中,有没有一种方法可以准确地找到将触摸或点击事件注入应用程序时会发生什么?比如它是如何调度的,它遍历了哪些视图,谁忽略了它(以及为什么),谁丢弃了它(以及为什么),最后是谁消费了它。

理想情况下,它会在应用程序中的每次点击时发出 Logcat 上的某种低级转储。

azi*_*ian 2

正如您在问题跟踪器 Dianne Hackborn 的类似帖子中看到的那样:

目前还没有办法做到这一点。

也就是说,框架中没有这样的API。

但是您可以拥有自定义根ViewGroup并侦听每个触摸事件(通过onInterceptTouchEvent())并转储MotionEvent.

我相信这是迄今为止唯一可能的方法。