Android MapView-单击“定位”按钮时停止滚动

Android MapView-单击“定位”按钮时停止滚动,android,android-mapview,Android,Android Mapview,在下图(中),您可以看到地图视图的右上角有一个“定位”ImageButton 我有一个自定义的(一个ImageView)并自己处理它的点击 现在,当用户拖动地图,然后(在拖动过程中)单击“定位”按钮时,它不会执行任何操作,直到地图停止移动 我想完成的是阻止地图滚动。 以下是我尝试过的(thx到blazzerbg):mMap.getController().stopAnimation(false) 但是不行 我知道我有这些功能,也许它们相互干扰 @Override public boolean o

在下图(中),您可以看到
地图视图的右上角有一个“定位”
ImageButton

我有一个自定义的(一个
ImageView
)并自己处理它的点击

现在,当用户拖动地图,然后(在拖动过程中)单击“定位”按钮时,它不会执行任何操作,直到地图停止移动

我想完成的是阻止地图滚动。

以下是我尝试过的(thx到blazzerbg):
mMap.getController().stopAnimation(false)
但是不行

我知道我有这些功能,也许它们相互干扰

@Override
public boolean onTouch(View view, MotionEvent event) {
    // Disables multi-touch (zoom in/out)
    if (event.getPointerCount() > 1) {
        return true;
    }

    // Get the map if a drag is done
    if (event.getAction() == MotionEvent.ACTION_UP) {
        // ...
    }

    // Disables double-tap
    return mGestureDetector.onTouchEvent(event);
}

private class GestureListener extends GestureDetector.SimpleOnGestureListener {

    @Override
    public boolean onDoubleTap(MotionEvent event) {
        return true;
    }
}
似乎我不是唯一一个


    • MapController中有一个方法

      public void stopAnimation(boolean jumpToFinish)
      

      您可以在任何情况下禁用用户跟踪按钮: 有这样一种方法:

       /**
           * Enable/disable user tracking on this {@link PolarisMapView}.
           * 
           * @param enabled True if user tracking is enabled, false otherwise.
           */
          public void setUserTrackingButtonEnabled(boolean enabled) {
      
      此方法附加一个侦听器,用于根据用户位置将视图居中:

      private final OnClickListener mOnUserTrackingButtonClickListener = new OnClickListener() {
              @Override
              public void onClick(View v) {
                  MapViewUtils.smoothCenterOnUserLocation(PolarisMapView.this, mMyLocationOverlay, R.string.polaris__unable_to_locate_you);
              }
          };
      

      那不是我想要的。我有自己的方法,效果很好。我有一个按钮,它工作得很好。我想要的是
      stopAnimation()
      方法工作。