我正在对与视图相关的问题进行故障排除:单击侦听器在应该触发时未触发。经过长时间的反复试验,我发现父视图被禁用,因此将所有事件丢弃给它的子视图。
在 Android 中,有没有一种方法可以准确地找到将触摸或单击事件注入应用程序时发生的情况?比如它是如何分派的,它遍历了哪些视图,谁忽略了它(以及为什么),谁丢弃了它(以及为什么)以及最终谁消费了它。
理想情况下,应用程序中的每次点击都会在 Logcat 上发出某种低级转储。
我正在对与视图相关的问题进行故障排除:单击侦听器在应该触发时未触发。经过长时间的反复试验,我发现父视图被禁用,因此将所有事件丢弃给它的子视图。
在 Android 中,有没有一种方法可以准确地找到将触摸或单击事件注入应用程序时发生的情况?比如它是如何分派的,它遍历了哪些视图,谁忽略了它(以及为什么),谁丢弃了它(以及为什么)以及最终谁消费了它。
理想情况下,应用程序中的每次点击都会在 Logcat 上发出某种低级转储。
正如您在问题跟踪器Dianne Hackborn的类似帖子中看到的那样:
目前没有办法做到这一点。
意思是,框架中没有这样的 API。
但是您可以拥有一个自定义根ViewGroup
并监听每个触摸事件(通过onInterceptTouchEvent()
)并转储MotionEvent
.
我相信这是迄今为止唯一可能的方法。