gpt4 book ai didi

Android:如何找出窃取我的触摸事件的 View ?

转载 作者:行者123 更新时间:2023-12-04 23:49:19 26 4
gpt4 key购买 nike

我有一个底部抽屉 - 一个底部与屏幕底部对齐的 View ,当被关闭时,它会自动向下动画直到它变得不可见(在这种状态下,它的顶部边框与屏幕底部对齐)。我正在尝试通过垂直向下滑动来消除此 View 。为此,我在 View 的这种方法中附加了一个手势检测器:

  @Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}

我这样做是因为这个 View 包含一个水平回收器 View ,所以我不想过早拦截 child 的触摸,以确保我的 View 只响应向下滑动并且不会从回收器 View 中窃取水平触摸(如此处所述: https://developer.android.com/training/gestures/viewgroup.html)

现在,我的问题是,当我在该 View 的一个区域上滑动时,快速识别有效,而当我在该 View 的另一个区域上滑动时,它不起作用。在第一种情况下,我在调试器中看到 onInterceptTouchEvent 被调用了三次,第三次调用被手势识别器识别为 fling。在第二种情况下,我看到 onInterceptTouchEvent 只被调用一次。

看起来其他一些观点正在窃取我的灵感,但我不知道是哪一个,因为我的应用程序非常复杂,而且我不是唯一的作者 :)。在一般情况下,调试的简单方法是什么?我只想知道我的 Activity 的整个层次结构中的哪个 View 消耗了我的事件,只调用了一次 onInterceptTouchEvent - 这将是进一步调查的良好开端。

谢谢!

最佳答案

我这样做的方法是使用模拟器下载android源代码。

我在 View.dispatchTouchEvent 中放置了一个断点(所有返回 true 的地方)。这将告诉我哪个 View 正在处理该事件。

如果这没有帮助,您还可以放置各种断点日志消息。

我希望这可以帮助您解决问题:D

关于Android:如何找出窃取我的触摸事件的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com