web-dev-qa-db-ja.com

無効にする方法Androidマップマーカークリックオートセンター

選択したマーカー機能でマップフラグメントの自動中心を無効にする方法を探しています。マーカーInfoWindowを表示したいが、マップ全体を選択したマーカーの中央に配置しない。

33
FiniteRed

次の投稿をご覧ください。

クリック後にマーカーにスナップしないAndroid map v2

@ DManによって指定されたメソッドがあり、基本的にはOnMarkerClickイベントを消費してデフォルトの動作をオーバーライドする必要があります。

// Since we are consuming the event this is necessary to
// manage closing openned markers before openning new ones
Marker lastOpenned = null;

mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
    // Check if there is an open info window
    if (lastOpenned != null) {
        // Close the info window
        lastOpenned.hideInfoWindow();

        // Is the marker the same marker that was already open
        if (lastOpenned.equals(marker)) {
            // Nullify the lastOpenned object
            lastOpenned = null;
            // Return so that the info window isn't openned again
            return true;
        } 
    }

    // Open the info window for the marker
    marker.showInfoWindow();
    // Re-assign the last openned such that we can close it later
    lastOpenned = marker;

    // Event was handled by our code do not launch default behaviour.
    return true;
}
});
54
Emil Adz

簡単な方法:

  1. SetOnMarkerClickListener()を実装する
  2. デフォルトでGoogleMapが地図の中心をマーカーに移動しないようにするには、「TRUE」を返します。

例:

map.setOnMarkerClickListener(
    new OnMarkerClickListener() {
        boolean doNotMoveCameraToCenterMarker = true;
        public boolean onMarkerClick(Marker marker) {
            //Do whatever you need to do here ....
            return doNotMoveCameraToCenterMarker;
        }
    });
33
Panini Luncher

非常にシンプル:

以下のコードを使用して、setOnMarkerClickListener()を実装します。

@Override
public boolean onMarkerClick(Marker marker) {

    marker.showInfoWindow(); // show info window

    return true; // can't move map by this
} 
6
Vishal Jadav