Android-使用多个 ClusterManager 将 InfoWindowAdapter 附加到 GoogleMap

标签 android infowindow

我有一个 Google Maps V2,在我的 setUpMap() 方法中,我将 GoogleMap 附加到一个 infoWindowAdapter,如下所示:

ClusterManager<OffersMarker> rentClusterManager = new ClusterManager<OffersMarker>(this, gmap);
gmap.setInfoWindowAdapter(rentClusterManager.getMarkerManager());

还有更多代码,但关键是它可以工作,当我点击标记时我可以看到 infoWindow。

因为我有两个 ClusterManager,所以我遇到了问题:

ClusterManager<OffersMarker> rentClusterManager = new ClusterManager<OffersMarker>(this, gmap);
ClusterManager<OffersMarker> saleClusterManager = new ClusterManager<OffersMarker>(this, gmap);

gmap.setInfoWindowAdapter(rentClusterManager.getMarkerManager()); //<-- THIS DOESN'T WORK
gmap.setInfoWindowAdapter(saleClusterManager.getMarkerManager()); //<-- ONLY THIS WORKS

我的问题是,如何将多个 ClusterManager.getMarkerManager() 附加到 infoWindowAdapter 设置?

对于监听器,我使用了 MultiListener,但我还没有找到 MultiAdapter 或类似的东西。

谢谢!

最佳答案

您只能将单个 InfoWindowAdapter 设置为 GoogleMap 对象。在您的情况下,它被 saleClusterManager.getMarkerManager()

覆盖

但作为一种解决方法,您可以将调用转发给相应的集群管理器。

gmap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter()
{
    @Override
    public View getInfoWindow(Marker marker)
    {
        View view = rentClusterManager.getMarkerManager().getInfoWindow(marker);
        if( view == null )
            view = saleClusterManager.getMarkerManager().getInfoWindow(marker);
        return view;
    }

    @Override
    public View getInfoContents(Marker marker)
    {
        View view = rentClusterManager.getMarkerManager().getInfoContents(marker);
        if( view == null )
            view = saleClusterManager.getMarkerManager().getInfoContents(marker);
        return view;
    }
});

关于Android-使用多个 ClusterManager 将 InfoWindowAdapter 附加到 GoogleMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38973510/

相关文章:

java - 将java文件更改为android的问题

android - 可以像 android 中的窗口一样使 View 不可触摸吗?

javascript - 将信息窗口添加到地标

javascript - 谷歌地图 API : How to place images in the content of Multiple InfoWindows?

java - 安卓 : is it safe to create a View and a Handler in a worker thread

android - 完成第一个 Activity 后开始第二个 Activity

android - AlertDialog 中的样式单选按钮和文本

google-maps - 自定义控件与 Google map Apiv3 上的信息窗口重叠

ios - 在谷歌地图中点击信息窗口时显示色调效果

javascript - 当我点击一个标记时,React Google Map InfoWindow 显示所有信息