如何为我的 ClusterManager 使用 onClusterItemRendered 等函数?

How can I use functions like onClusterItemRendered for my ClusterManager?

我正在尝试在我的集群 Google 地图上获取对我的标记的引用(不使用 getMarkerCollections) 但我找不到在哪里覆盖此功能。

我制作了一个典型的 ClusterManager,效果很好, 但我无法在 class.

中的任何地方覆盖该函数

我需要为此定制 class 吗?我该怎么做?

要直接回答您的问题,您需要创建一个扩展 DefaultClusterRenderer 的自定义 class,然后覆盖 onClusterItemRendered() 方法:

public class MyRenderer extends DefaultClusterRenderer<MyItem> {

    public MyRenderer(Context context, GoogleMap map, ClusterManager<MyItem> clusterManager) {
        super(context, map, clusterManager);
    }

    @Override
    protected void onClusterItemRendered(MyItem clusterItem,
                                         Marker marker) {
        super.onClusterItemRendered(clusterItem, marker);

        //other stuff......
    }
}

然后,您将调用 setRenderer() 方法并为其提供 MyRenderer 对象的新实例:

mClusterManager.setRenderer(new MyRenderer(this, mMap, mClusterManager));