Google지도 조각을 Android의 RecyclerView에 추가하려고합니다.Android Google지도 RecyclerView 홀더의 동적 조각
필자는 그것에 대해 읽었으며 중복 된 ID 오류를 피하기 위해 조각으로 XML을 만드는 대신 동적으로 조각을 만들어야한다는 것을 알았습니다.
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();
}
이 나는지도 내 RecyclerView로 표시되고 모든 것이 잘 작동하는 것 같군 볼 수 있습니다 실행 :
은 여기 내 어댑터 코드입니다. 잠시 동안 RecyclerView에서 위로 스크롤 한 다음지도로 다시 돌아갈 때 문제가 나타납니다.
내가 응용 프로그램 충돌 및이 오류가 표시되는지 수행
java.lang.IllegalArgumentException: No view found for id 0x1 (unknown) for fragment SupportMapFragment{606864b #0 id=0x1}
많은 감사와 안부, 마르셀합니다.
아무도 나를 도울 수 있습니까? – MarcelPG