为了实现这一点,我觉得我只需要覆盖onMarkerClick
并检查单击标记的 infoWindow 是否已经打开,但令我惊讶的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");
}
}
它总是告诉我 infoWindow 是“不显示”,这是不对的......我可以通过保留参考来解决这个问题,userLastClickedMarker
但我想知道我在上面做错了什么。
谢谢!
编辑:
我更改了代码以调试此问题:
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