gpt4 book ai didi

android - OnSingleTapUp 事件触发两次

转载 作者:行者123 更新时间:2023-11-30 02:17:36 25 4
gpt4 key购买 nike

我有一个带有 GestureDetector 的 Xamarin Android 应用程序。在我的设备 (Sony Xperia S5303) 和模拟器中它运行良好。然而,在三星 Galaxy 平板电脑上,OnSingleTapUp 事件被触发了两次,即使我只触摸了一次屏幕。由于事件由 OnSingleTapConfirmed 检查,并且设备的行为就像进行了两次点击一样,因此永远不会调用以下方法:

public bool OnSingleTapUp(MotionEvent e)
{
if (PersistentContext.LoggedPlayer.Token)
{
if (simpleOnGestureListener.OnSingleTapConfirmed(e))
{
Move(e);
}
return true;
}
return false;
}

奇怪的是,当点击一个按钮时,按钮方法只被调用一次。谁能告诉我什么可能导致这种奇怪的行为以及如何避免它?

最佳答案

您需要改用 onSingleTapConfirmed(MotionEvent event)。这样 android 就可以确保它是单击一次,并且不会触发事件两次。

编辑:如果您决定使用onSingleTapUp(MotionEvent event),那么您可以使用event.getEventTime(),如果第一次和第二次事件之间的时间差小于 200 毫秒之类的阈值,将其视为不需要的第二次触发点击并忽略它。

编辑 2: 因为我不使用 Xamarin,所以我可能完全错了,但我认为你需要像这样更改你的代码:(我的意思是完全忘记 onSingleTapUp 并将你的整个代码移动到 onSingleTapConfirmed )

@Override
public boolean onSingleTapConfirmed(MotionEvent event) {
if (PersistentContext.LoggedPlayer.Token)
{
Move(e);
return true;
}
return false;
}

希望对您有所帮助,祝您好运!

关于android - OnSingleTapUp 事件触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29050015/

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