onTap 被识别为 onPanStart MapGesture

onTap is recognized as onPanStart MapGesture

有时当我在地图上点击时,点击被识别为 onPanStart。当用户在地图上滑动时我需要做一些事情,当他点击时我需要做一些不同的事情,但是 MapGesture.OnGestureListener 中没有 onSwipe 手势。使用 onPanStart 有时会调用错误的操作。有没有更好的方法来处理这个问题?

区分手势有些主观,因此通常会调整参数以为给定用例提供良好的用户体验。

在不了解您的确切用例的情况下,如果您希望操作直接对应于 HERE SDK 解释输入的方式,那么使用回调 onPanStartonTapEvent 将是做正确的事。请注意,即使 Pan 在技术上被触发,它也可能具有如此小的速度以致于 Map 不会移动太多。 "Pan" 相当于 "Swipe" 手势。

如果你确实想稍微调整一下用户体验,一个选择是编写你自己的 Android GestureDetector 以获得你想要的感觉(可能将结果与OnGestureListener 事件)。或者,您也可以在触发事件之前检查调用 onPanStart 之后地图是否实际移动了一定数量,也许使用 Map#OnTransformListener 但这可能很难做到正确。