【问题标题】:How to change visibility of markers in ClusterManager while also having access to ClusterItem object?如何更改 ClusterManager 中标记的可见性同时还可以访问 ClusterItem 对象?
【发布时间】:2019-02-16 17:08:00
【问题描述】:
目前我知道在 ClusterManager 中更改标记的可见性的唯一方法是执行markerClusterManager.getMarkerCollection().getMarkers(),这给了我一个Collection<Marker> object。然后,您可以更改这些标记的可见性。
但是,我想根据仅在我的自定义 ClusterItem 对象中可用的信息来更改标记的可见性。但是getMarkers() 方法只给了我一个标记对象的集合,它们没有这些信息。我可以获得我的自定义 ClusterItem 对象,但我无法更改它们的可见性。我只能通过获取 Marker 对象本身来做到这一点,重申一下,它没有包含在我的自定义 ClusterItem 对象中的信息。
【问题讨论】:
标签:
java
android
google-maps
google-maps-markers
markerclusterer
【解决方案1】:
好的,我想到了一个似乎行之有效的解决方法。为了改变标记的可见性,我只对我想要不可见的 ClusterItem 对象执行 clusterManager.removeItem() ,对我想要可见的 ClusterItem 对象执行 clusterManager.addItem() 。之后,我调用 clusterManager.cluster() 让它重新加载集群。对于从 clusterManager 中删除的 ClusterItem 对象,我将它们保存在一个列表中,然后在我希望它们再次可见时将它们添加回 ClusterManager。我仍然更喜欢能够利用 setVisibility() 方法的解决方案,但我将使用此解决方法,直到有人提出更好的方法。