查找哪个视图消耗了触摸事件(如果有)。

7
我正在解决一个与视图相关的问题:当它应该被触发时,点击监听器没有被触发。经过长时间的尝试和错误,我发现父视图被禁用了,因此舍弃了所有传递给其子视图的事件。
在Android中,是否有一种方法可以精确查找注入应用程序的触摸或点击事件发生了什么?例如,它是如何分派的,哪些视图被遍历,谁忽略了它(以及为什么),谁丢弃了它(以及为什么)以及最终谁消耗了它。
理想情况下,对于应用程序中的每次点击,都会发出一种低级别的Logcat转储。

你可以找到被手指触摸的视图,然后重写onTouchEvent()方法并在它们上设置断点,以查看是否有一个视图已经处理了事件而不是你期望的视图。(这是一种丑陋的方式...) - wanglugao
1个回答

2
正如您在问题跟踪器的相似帖子中所看到的那样,Dianne Hackborn写道:

目前还没有这样的方法。

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

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

我认为这是目前唯一可能的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接