Чтобы достичь этого, я чувствую, что мне просто нужно переопределить onMarkerClick
и проверить, уже ли открыт указатель мыши с кликом, но, к моему удивлению, clickedMarker.isInfoWindowShown()
всегда возвращает false...
Мои коды:
@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");
}
}
Он всегда говорит мне, что инфо-окно "не показывается", что неверно... Я могу обойти это, сохранив ссылку userLastClickedMarker
, но я хотел бы знать, где я ошибся выше.
Спасибо!
Edit:
Я изменил свой код, чтобы отладить эту проблему:
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());
Я обнаружил, что isInfoWindowShown()
корректно работает в методе onMarkerClick, но не будет правильно его помнить. И я обнаружил, что это было указано как ошибка кого-то уже...
https://code.google.com/p/gmaps-api-issues/issues/detail?id=5408