首先,对不起头的标题感到抱歉。
我的问题基本上是这样的:在我的Google Maps应用中,我有两种标记。这些具有独特的图标和信息窗口。您可以使用地图上的按钮在它们之间切换。当我为其中一个设置信息窗口时,我意识到我无法为其他集群管理器复制该窗口。
我的班级目前看起来像这样:
public class MapActivity extends FragmentActivity implements
OnMapReadyCallback,
ClusterManager.OnClusterItemClickListener<Shelter>
然后我用它来设置:
shelterClusterManager.getMarkerCollection().setOnInfoWindowAdapter(new GoogleMap.InfoWindowAdapter()
{
@Override
public View getInfoWindow(Marker marker)
{
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View view = inflater.inflate(R.layout.custom_info_window_shelter, null);
TextView address = view.findViewById(R.id.info_window_address);
TextView occupants = view.findViewById(R.id.info_window_occupants);
TextView latitude = view.findViewById(R.id.info_window_latitude);
TextView longitude = view.findViewById(R.id.info_window_longitude);
address.append(clickedShelter.getTitle());
occupants.append(clickedShelter.getSnippet());
latitude.append("" + clickedShelter.getLatitude());
longitude.append("" + clickedShelter.getLongitude());
return view;
}
@Override
public View getInfoContents(Marker marker)
{
return null;
}
});
我也有这种方法来获取对所选对象(clusteritem)的引用:
@Override
public boolean onClusterItemClick(Shelter shelter)
{
clickedShelter = shelter;
return false;
}
基本上,现在一切都满足于Shelter类。从理论上讲,我还需要为其他ClusterItem类复制所有这些内容,但这是行不通的。
我非常感谢您的帮助!如果我应该提供更多代码,请告诉我。
我要执行的操作的GIF:https://gfycat.com/glumpastgazelle