在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();
}