Ich habe ein paar Marker auf meiner Karte. Zu jedem von ihnen möchte ich ein kundenspezifisches infoWindow aufblasen.Hinzufügen eines anderen Layouts von infoWindow zum Marker
Das Problem, das ich habe, ist, dass das InfoWindow das gleiche für jeden ist. Ich habe ein paar Stack-Threads gelesen, aber ich habe nicht herausgefunden, wie ich es beheben kann.
Snippet, wo ich die Markierungen auf der Karte
for (int i = 0; i<cityObjects.size(); i++){
CityObject cObject = cityObjects.get(i);
Coordinates loc = cObject.getCoordinates();
LatLng pos = new LatLng(loc.getLatitude(), loc.getLongitude());
mMap.addMarker(new MarkerOptions().position(pos).title(cObject.getName()));
loadInfoWindow(cObject.getImgs().get(0), cObject.getName());
builder.include(pos);
}
Methode hinzufügen, die benutzerdefinierte aufzublasen infowindow
public void loadInfoWindow(final String url, final CharSequence title) {
mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker arg0) {
arg0.getId();
View v = getActivity().getLayoutInflater().inflate(R.layout.layout_info_window, null);
Button info = (Button) v.findViewById(R.id.infoButton);
info.setText(title);
BitmapLayout back = (BitmapLayout) v.findViewById(R.id.bitmapBackground);
Picasso.with(getContext()).load(url).into(back);
return v;
}
@Override
public View getInfoContents(Marker arg0) {
return null;
}
});
}
ich etwas über setInfoWindowAdapter
ein Setter ist gelesen und daher außer Kraft setzt Infowindow jedes Mal, wenn die for-Schleife iteriert. Hat jemand eine gute Lösung, wie man die Markierungen erkennt, damit ich verschiedene Layouts aufblasen kann?
Sie haben eine lange Länge für jeden Marker. Wenn Sie also auf Marker klicken, können Sie Ihr Layout generieren, indem Sie den Marker lat long vergleichen. –
@chetanprajapat Großartig, es funktioniert! Vielen Dank – Viktor
immer willkommen ... –