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?
- ¿Cómo cierro Google Navigation de forma programática?
- Ejecución de aplicación google map en Android Emulator
- La última versión de com.google.android.gms para google play services revision 6
- Acceso a GoogleMap desde fuera del hilo de la interfaz de usuario en Android
- Redibujar / refrescar Itemizedoverlay? (Android / google maps api)
- Cómo utilizar SupportMapFragment dentro de un fragmento?
- Android: java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable
- Adición de una capa KML a una aplicación de mapas de Android
- ¿Se filtra siempre la primera instancia de MapActivity?
- Varios mapas v2 en TabActivity
- ¿Cómo puedo obtener la huella dactilar MD5 del keytool de Java, no sólo SHA-1?
- ¿Cómo compartir la ubicación como whatsapp?
- Fragmento del mapa de Google en una vista circular
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.
- Reemplazos de reemplazo: reemplazo en toda la ruta (incluyendo /)
- Android Alpha, beta para aplicaciones pagas en la consola del programador de Google Play