No haga clic en el marcador después de hacer clic en android map v2

Actualmente Android Map v2 se ajusta a la ubicación del marcador después de hacer clic. Quiero desactivar este comportamiento pero no veo ninguna opción para hacerlo.

¿Alguien sabe cómo arreglar eso?

Sobre la base de lo que leo de los marcadores: Google Maps Android API ( https://developers.google.com/maps/documentation/android/marker#marker_click_events )

Eventos de clics de marcador

Puede usar un OnMarkerClickListener para escuchar eventos de clic en el marcador. Para establecer este listener en el mapa, llame a GoogleMap.setOnMarkerClickListener (OnMarkerClickListener). Cuando un usuario hace clic en un marcador, onMarkerClick (Marker) será llamado y el marcador pasará a través de un argumento. Este método devuelve un booleano que indica si ha consumido el evento (es decir, desea suprimir el comportamiento predeterminado). Si devuelve false, el comportamiento predeterminado se producirá además de su comportamiento personalizado. El comportamiento predeterminado de un evento de clic de marcador es mostrar su ventana de información (si está disponible) y mover la cámara de manera que el marcador esté centrado en el mapa.

Es posible que se sobreponga a este método y que sólo abra el marcador y devuelva true para consumir el evento.

// Since we are consuming the event this is necessary to // manage closing opened markers before opening new ones Marker lastOpened = null; mMap.setOnMarkerClickListener(new OnMarkerClickListener() { public boolean onMarkerClick(Marker marker) { // Check if there is an open info window if (lastOpened != null) { // Close the info window lastOpened.hideInfoWindow(); // Is the marker the same marker that was already open if (lastOpened.equals(marker)) { // Nullify the lastOpened object lastOpened = null; // Return so that the info window isn't opened again return true; } } // Open the info window for the marker marker.showInfoWindow(); // Re-assign the last opened such that we can close it later lastOpened = marker; // Event was handled by our code do not launch default behaviour. return true; } }); 

Este es un código no probado, pero puede ser una solución viable.

Gracias DMan

Parece que deberíamos ser capaces de hacer lo siguiente, pero debido a este error , no funciona porque marker.isInfoWindowShown() siempre devuelve false:

 mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { public boolean onMarkerClick(Marker marker) { if (marker.isInfoWindowShown()) { marker.hideInfoWindow(); } else { marker.showInfoWindow(); } return true; } }); 

Sin embargo, lo siguiente tiene el mismo efecto y funciona:

 mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { Marker currentShown; public boolean onMarkerClick(Marker marker) { if (marker.equals(currentShown)) { marker.hideInfoWindow(); currentShown = null; } else { marker.showInfoWindow(); currentShown = marker; } return true; } }); 

Debido a que sólo se muestra una ventana de información a la vez (como se indica en la Guía para programadores de la API de Google Maps v2 ), solo tenemos que preocuparnos de ocultar la ventana de información si se hace clic en el marcador cuya ventana de información está abierta.

  • ¿Cómo obtener GoogleApiClient en Xamarin?
  • La etiqueta de meta-datos no tiene valor correcto
  • Rotar el marcador en función de la dirección de conducción
  • Entender boundCenterBottom ()
  • Error de Google Map V2 android error de fragmento de clase de inflado
  • Android Maps - Límite de 180 grados
  • No se pudo obtener el cliente de fábrica de conexión
  • Cree una ruta de trazado con Google Maps sin conexión
  • Sqlite Database - ¿Cómo guardar la imagen tomada de la intención de la cámara, así como hashmap a sqlite para recuperar más tarde?
  • Cordova Phonegap y Google Maps v3 javascript api: Cómo agregar funciones backbutton al hacer clic en el enlace de la licencia o el logotipo de Google Maps
  • La vista Google Maps de Google devuelve el error cuando se usa onTap () - Se supone que Alertdialog se muestra
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.