gpt4 book ai didi

java - 为什么这个 GestureDetector 不起作用?

转载 作者:太空狗 更新时间:2023-10-29 13:40:16 26 4
gpt4 key购买 nike

我想在名为 belowContainer 的 RelativeLayout 上检测滑动手势,我的代码如下所示:

    // Create a new GestureListener
GestureDetector.SimpleOnGestureListener gestureListener = new GestureDetector.SimpleOnGestureListener() {

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
Log.d("test", "velocityx=" + velocityX);
return true;

}

};

// Setup a new GestureDetector, attach the custom GestureListener
final GestureDetector gestureDetector = new GestureDetector(this, gestureListener);

// Attach the GestureDetector to the belowContainer onTouchListener
belowContainer.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
Log.d("test", "clicked!");
if(gestureDetector.onTouchEvent(event)) {
Log.d("test", "gesture detected");
return true;
}

return false;
}
});

我的应用程序注册 belowContainer onTouch 正常,但不知何故未检测到滑动手势(日志仅显示“已单击!”,没有其他内容)。怎么会?

最佳答案

您是在设备上还是在模拟器中进行测试?

我没有发现您的代码有问题。 belowContainer 是否足够大,以便您有足够的空间来做出 throw 手势?您在其中是否有任何可能“拦截”触摸事件的 View ?

我建议您记录手势监听器可能捕获的所有其他方法,这样您就知道您是否正在获取其他手势。

您也可以尝试从 Activity 而不是从您的 View 传递 onTouchEvents...这样可以更容易地捕捉手势事件(只是为了确保一切正常!)(覆盖 Activity.onTouchEvent 并将事件传递给手势检测器。

关于java - 为什么这个 GestureDetector 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6640812/

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