我的应用程序中有一个 MapView。我在其中有很多 OverlayItems 带有一点可绘制标记。
如果我触摸一个覆盖项,onTap() 方法就会运行,我会得到一个小对话框。它很好用,但有时当我尝试使用多点触控进行缩放时,我的手指位于覆盖项的顶部,在我完成缩放后会出现对话框。这有点麻烦,因为它不太符合人体工程学,因为您必须在缩放后关闭即将出现的对话框。
我应该如何防止我的应用发生此事件?我根本不想在缩放时运行 onTap()。
我尝试使用 onTouch 事件和 2 个布尔值但不工作:
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
int action = event.getAction() & MotionEvent.ACTION_MASK;
switch (action) {
case MotionEvent.ACTION_DOWN: {
actionIsDown= true;
break;
}
case MotionEvent.ACTION_POINTER_DOWN: {
pointerIsDown=true;
break;
}
case MotionEvent.ACTION_POINTER_UP: {
pointerIsDown= false;
break;
}
case MotionEvent.ACTION_UP: {
actionIsDown= false;
break;
}
}
return super.onTouchEvent(event, mapView);
}
和 onTap:
@Override
protected boolean onTap(int index)
{
if(pointerIsDown==false && actionIsDown==false){ //...dialog here
有任何想法吗?