gpt4 book ai didi

android - Android 中的 Google map 不会调用 onClusterItemInfoWindowClick

转载 作者:行者123 更新时间:2023-12-02 10:27:25 28 4
gpt4 key购买 nike

编辑:此问题涉及 Android 上的 Google map 。

我正在尝试为带有聚类的标记制作自定义信息窗口。我按照此处给出的说明 https://stackoverflow.com/a/21964693/1641882 进行操作

我做了这些:

设置集群管理器作为信息窗口适配器

// Setting custom cluster marker manager for info window adapter
map.setInfoWindowAdapter(mClusterManager.getMarkerManager());
mClusterManager.getMarkerCollection().setOnInfoWindowAdapter(new MyLocationInfoWindowAdapter());

为 clusterItem 信息窗口设置点击监听器

mClusterManager.setOnClusterItemInfoWindowClickListener(new ClusterManager.OnClusterItemInfoWindowClickListener<LocationMarker>() {
@Override
public void onClusterItemInfoWindowClick(LocationMarker locationMarker) {
Toast.makeText(context, "info window Click", Toast.LENGTH_SHORT).show();
}
});

这是我的信息窗口适配器

private class MyLocationInfoWindowAdapter implements GoogleMap.InfoWindowAdapter {
@Override
public View getInfoWindow(Marker marker) {
return null;
}

@Override
public View getInfoContents(Marker marker) {
TextView helloTextView = new TextView(getContext());
helloTextView.setText("Hello Info contents");
helloTextView.setClickable(false);
return helloTextView;
}
}

最佳答案

我找到了解决方案。我将其发布在这里,以便其他人可以发现它有用。

似乎即使在将 InfoWindowAdapter 设置为我的自定义 ClusterManager 的 MarkerManager 后,如下所示:

map.setInfoWindowAdapter(mClusterManager.getMarkerManager());

信息窗口的点击监听器仍然与 map 对象一起使用,而不是与 mClusterManager 一起使用。

因此,为了响应信息窗口点击,我需要使用 map 对象来设置它,如下所示:

map.setOnInfoWindowClickListener(new MyMarkerInfoWindowClickListener());

这里需要注意的是,信息窗口点击不会注册到集群管理器,而仅保留在 map 中。

关于android - Android 中的 Google map 不会调用 onClusterItemInfoWindowClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34061947/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com