onClusterItemInfoWindowClick在Android中不需要谷歌地图
编辑:这个问题是关于Android上的谷歌地图的 我正在尝试为带有集群的标记创建自定义信息窗口。我按照这里的指示做了 我做了这些: 将群集管理器设置为充当信息窗口适配器onClusterItemInfoWindowClick在Android中不需要谷歌地图,android,google-maps,google-maps-markers,Android,Google Maps,Google Maps Markers,编辑:这个问题是关于Android上的谷歌地图的 我正在尝试为带有集群的标记创建自定义信息窗口。我按照这里的指示做了 我做了这些: 将群集管理器设置为充当信息窗口适配器 // Setting custom cluster marker manager for info window adapter map.setInfoWindowAdapter(mClusterManager.getMarkerManager()); mClusterManager.getMarkerColle
// 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();
}
});
我找到了解决办法。我把它贴在这里,以便其他人能发现它有用 似乎即使将InfoWindowAdapter设置为自定义ClusterManager的MarkerManager,如下所示:
map.setInfoWindowAdapter(mClusterManager.getMarkerManager())代码>
信息窗口的单击侦听器仍然与映射
对象一起,而不是与mClusterManager
一起
因此,为了响应信息窗口的单击,我需要将其设置为map
对象,如下所示:
map.setOnInfoWindowClickListener(新的MyMarkerInfoWindowClickListener())代码>
这里要说明的是,信息窗口单击不会在cluster manager中注册,而只会在map中注册。这是针对android的吗?是的,是针对android的。很抱歉,我不清楚是否要编辑此问题。您也可以通过显式调用ClusterManager上的onInfoWindowClick(marker)
函数,调用ClusterManager上的OnClusterInfoWindowClickListener
或OnClusterInfoWindowClickListener
,可能在地图对象的OnInfo窗口中单击Listener
。
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;
}
}