2013-04-10 14 views
27

Sto cercando un modo per disattivare il centro automatico del frammento della mappa sulla funzionalità del marcatore selezionata. Voglio comunque che vengano visualizzati i segnalibri di InfoWindow, ma non centrare l'intera mappa sul marker che ho selezionato.Come disattivare l'indicatore della mappa Android Fare clic su Auto Center

+0

Funziona correttamente, è la soluzione corretta. [ENTER Descrizione Link qui] [1] [1]: http://stackoverflow.com/questions/15925319/how-to-disable-android-map-marker-click-auto-center ? answertab = active # tab-top –

risposta

49

Date un'occhiata al seguente post:

Don't snap to marker after click in android map v2

c'è un metodo non data dal @DMan, fondamentalmente è necessario consumare l'evento OnMarkerClick e ignorare il comportamento predefinito:

// 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; 
} 
}); 
+0

Grazie è l'ideale! – FiniteRed

+0

@Emil Adz, ho usato la stessa logica ma ho ancora ottenuto la mossa della mappa su ClickMarker; –

+0

@ AravinthaBashyam.c se si restituisce true alla fine con questo metodo, allora non dovrebbe spostarsi, e perché è il down-vote? –

23

modo semplice:

  1. Implementare setOnMarkerClickListener()
  2. Ritorna "VERO" per impedire a GoogleMap di spostare automaticamente il centro della mappa sul marcatore.

Esempio:

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

wow questo funziona come un fascino: D – Javier

2

molto semplice:

Usa sotto codice per implementare setOnMarkerClickListener().

@Override 
public boolean onMarkerClick(Marker marker) { 

    marker.showInfoWindow(); // show info window 

    return true; // can't move map by this 
} 
Problemi correlati