在android项目中,我使用googlemapsandroidapi实用程序库来使用集群解决方案。
在每个单个标记或群集标记上,触摸选定标记时会打开一个信息窗口。然后触摸信息窗口,我会使用这些事件:

...
mClusterManager.setOnClusterInfoWindowClickListener(this);
mClusterManager.setOnClusterItemInfoWindowClickListener(this);
...

还有:
@Override
public void onClusterInfoWindowClick(Cluster<JobItem> cluster) {
    // Here I go to a new fragment A, list of items.

}

@Override
public void onClusterItemInfoWindowClick(JobItem item) {
    // Here I go to a new fragment B, item's details

}

当我回到地图(来自片段a或b的popbackbackback)时,infowindow总是打开的。当我转到片段A或B时,我想以编程方式隐藏它们。
我发现可以从Markers对象调用方法hideInfoWindow(),但在这两个事件中,Markers没有传递参数。
你知道如何隐藏信息窗口吗?

最佳答案

我找到了一个适合我的解决方案,在你的片段的onresume中添加这段代码,它将关闭所有打开的infowindow。

java.util.Collection<Marker> markerCollection = mClusterManager.getMarkerCollection().getMarkers();
for(Marker m : markerCollection){
    if(m.isInfoWindowShown())
    m.hideInfoWindow();
}

08-28 18:43