Android - 在群集项目上单击显示信息窗口(标题)

时间:2016-08-09 11:52:45

标签: android google-maps

无法理解这个问题。 我有一个集群渲染器(OffersClusterRenderer),其中

@Override
protected void onBeforeClusterItemRendered(OffersMarker item,
                                           MarkerOptions markerOptions) {
    int itemNumberOfOffers = item.getNrOfOffers();
    BitmapDescriptor markerDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.ro1);

    markerOptions.icon(markerDescriptor);
    markerOptions.snippet("Show");
    markerOptions.title("Show");
    super.onBeforeClusterItemRendered(item, markerOptions);
}

我也有ClusterManager,在我的Activity中我正在运行它:

rentClusterManager = new ClusterManager<OffersMarker>(this, gmap);
rentClusterManager.setRenderer(rentClusterRenderer);

我的问题是,在调用onClusterItemClick时如何显示标记的信息窗口(标题)?

聋人不应该表现出来吗?它在谷歌文档中也这么说。

3 个答案:

答案 0 :(得分:1)

以下是我设法做到这一点(这是Kotlin代码,但你应该理解它)。 将此方法添加到自定义渲染器:

internal fun showInfoWindow(marker: OffersMarker) {
    this.getMarker(marker).showInfoWindow()
}

然后在onClusterItemClick(marker: OffersMarker)添加以下行:

(mClusterManager.renderer as RentClusterRenderer).showInfoWindow(marker)

答案 1 :(得分:0)

您需要实现onClusterItemClick的方法,该方法可以在您的活动中被覆盖。

答案 2 :(得分:0)

@NilayDani是正确的。您需要实现onClusterItemClick的方法。它是显示信息窗口标题的触发点。

信息窗口允许您在点击标记时向用户显示信息。一次只显示一个信息窗口。如果用户点击另一个标记,则将隐藏当前信息窗口,并显示新的信息窗口。

添加信息窗口的最简单方法是设置相应标记的title()snippet()方法。设置这些属性将导致在单击该标记时显示信息窗口。

以下是如何显示标题的示例代码段,包括标记的位置和摘要:

static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298);
Marker melbourne = mMap.addMarker(new MarkerOptions()
                          .position(MELBOURNE)
                          .title("Melbourne")
                          .snippet("Population: 4,137,400"));

要查看完整代码,请在此处查看演示代码:https://github.com/googlemaps/android-samples/tree/master/ApiDemos