アプリでMapViewを取得しました。少し描画可能なマークが付いたOverlayItemがたくさんあります。
overlayitemをタッチすると、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
何か案は?