Per raggiungere questo risultato, ho semplicemente bisogno di ignorare onMarkerClick
e verificare se la finestra Informazioni del marker cliccato è già stata aperta, ma con mia sorpresa clickedMarker.isInfoWindowShown()
restituire sempre false. ..Nascondi informazioniWindow quando si fa clic sull'indicatore la seconda volta (API Android di Google Maps V2)
miei codici:
@Override
public boolean onMarkerClick(final Marker clickedMarker) {
if(clickedMarker.isInfoWindowShown()) {
clickedMarker.hideInfoWindow();
System.out.println("was showing");
} else {
clickedMarker.showInfoWindow();
System.out.println("not showing");
}
}
mi dice sempre l'infowindow è "non mostra", che non è giusto ... posso ottenere intorno a questo mantenendo un riferimento di userLastClickedMarker
ma mi piacerebbe per sapere dove ho sbagliato sopra.
Grazie!
Edit:
ho cambiato il mio codice per eseguire il debug il problema:
System.out.println(clickedMarker.isInfoWindowShown());
if(clickedMarker.isInfoWindowShown()) {
clickedMarker.hideInfoWindow();
System.out.println(" showing");
} else {
clickedMarker.showInfoWindow();
System.out.println("not showing");
}
System.out.println(clickedMarker.isInfoWindowShown());
ho scoperto che isInfoWindowShown()
funziona correttamente nel metodo onMarkerClick ma non si 'ricordo' in modo corretto. E ho trovato questo è stato sottolineato come un bug da qualcuno già ...
https://code.google.com/p/gmaps-api-issues/issues/detail?id=5408
Si può provare a chiamare il codice con un piccolo ritardo usando 'Handler'. Suggerisco anche di inserire un link a questa domanda come commento all'emissione 5048. –
Hai trovato dei problemi? Sto affrontando lo stesso problema. – Geek
ricorda di inserire il bug nel collegamento per favore, se raggiungi questo post. – Poutrathor