gpt4 book ai didi

Android OnTouchEvent 触发 3 次

转载 作者:行者123 更新时间:2023-11-29 21:56:57 24 4
gpt4 key购买 nike

我正在尝试在 MapView 上实现 onTouchEvent 以更新地理点,但是当我触摸屏幕时仅捕获 ACTION_UP,它会触发 3 次。如何在这种情况下执行一次我的代码?

@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
int action = event.getAction();
if (action == MotionEvent.ACTION_UP) {
Log.e("Touch", Integer.toString(event.getAction()));
//All 3 fires has index 1 that concern to ACTION_UP
//Below will be AsyncTask call
}
return false;
}

最佳答案

从方法签名来看,我认为您的示例来自覆盖的Overlay?如果是这样,它是 documentation状态:

Returns: True if the tap was handled by this overlay.

这是几乎每个事件(onTouch、onKey 等)的标准 android 行为。如果事件已处理(在您的情况下,您启动了 AsyncTask),您应该返回 true,以便 Android 知道它已被处理。

由于您总是返回 false,因此框架不知道它是否已被处理,并会在事件处理链的更下方调度 Action。我不确定为什么正好是三倍。

因此,如果您成功处理了该事件,则返回 true

关于Android OnTouchEvent 触发 3 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13002262/

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