【问题标题】:onClusterItemInfoWindowClick is not getting called for Google maps in AndroidonClusterItemInfoWindowClick 未在 Android 中调用 Google 地图
【发布时间】:2015-12-03 09:16:30
【问题描述】:

编辑:这个问题是关于 Android 上的谷歌地图。

我正在尝试为具有聚类的标记创建自定义信息窗口。我按照这里给出的说明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;
    }
}

【问题讨论】:

  • 这是安卓版的吗?
  • 是的,它适用于 Android。很抱歉,不清楚我是否会编辑问题。

标签: android google-maps google-maps-markers


【解决方案1】:

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

似乎即使像这样将 InfoWindowAdapter 设置为我的自定义 ClusterManager 的 MarkerManager :

map.setInfoWindowAdapter(mClusterManager.getMarkerManager());

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

所以为了响应信息窗口的点击,我需要用map对象设置它,就像这样:

map.setOnInfoWindowClickListener(new MyMarkerInfoWindowClickListener());

这里要注意的是,信息窗口点击不会注册到集群管理器,而只会保留在地图上。

【讨论】:

  • 您还可以通过在 ClusterManager 上显式调用 onInfoWindowClick(marker) 函数(可能在地图对象上的 OnInfoWindowClickListener 中)调用 ClusterManager 上的 OnClusterItemInfoWindowClickListenerOnClusterInfoWindowClickListener
猜你喜欢
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多