Ich versuche, Google Maps Fragmente in einem RecyclerView in Android hinzuzufügen.Android Google Maps dynamische Fragment in RecyclerView Halter
Ich las darüber und ich sah, dass ich die Fragmente dynamisch erstellen muss, anstatt es durch XML zu tun, um doppelte ID-Fehler zu vermeiden.
Hier ist mein Adapter Code:
public class MapViewHolder extends RecyclerView.ViewHolder {
protected FrameLayout mapContainer;
public MapViewHolder(View v){
super(v);
view = v;
mapContainer = (FrameLayout) v.findViewById(R.id.mapContainer);
}
}
private void bindMapRow(final MapViewHolder holder, int position) {
MessageData message = (MessageData) messagesList.get(position);
LocationData location = message.getLocation();
FrameLayout view = holder.mapContainer;
FrameLayout frame = new FrameLayout(context);
if (message.getIdMap() != 0) {
frame.setId(message.getIdMap());
}
else {
message.setIdMap(generateViewId());
frame.setId(message.getIdMap());
messagesList.set(position, message);
}
int size = context.getResources().getDimensionPixelSize(R.dimen.row_chat_map_size);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(size, size);
frame.setLayoutParams(layoutParams);
view.addView(frame);
GoogleMapOptions options = new GoogleMapOptions();
options.liteMode(true);
SupportMapFragment mapFrag = SupportMapFragment.newInstance(options);
mapFrag.getMapAsync(new MapReadyCallback(location));
FragmentManager fm = activity.getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(frame.getId(), mapFrag);
ft.commit();
}
das Ausführen kann ich die Karte in meinen RecyclerView angezeigt sehen und alles scheint gut zu funktionieren. Das Problem taucht auf, wenn ich eine Weile im RecyclerView nach oben scrolle und dann wieder auf die Karte gehe.
Als ich tun, dass die App abstürzt und diesen Fehler zeigt:
java.lang.IllegalArgumentException: No view found for id 0x1 (unknown) for fragment SupportMapFragment{606864b #0 id=0x1}
Vielen Dank und freundlichen Grüßen Marcel.
Niemand kann mir helfen? – MarcelPG