Доброго!
Создаются карточки, в них добавляются LinearLayout, в LinearLayout присутствует свой контент. При повороте устройства карточки пересоздаются естественно, я пытаюсь в новые карточки добавить ранее созданные LinearLayout, дабы восстановить содержимое. Соответственно нарываюсь на ошибку, что LinearLayout уже имеет родителя. Где и как можно в адаптере удалить ссылку на старые карточки или как это правильнее реализовать?
@Override
public void onBindViewHolder(FineFoodHolder holder, int position) {
if (AddItemMenu.getInstance().getLayoutArrayList().size() != data.size()) {
holder.layout = new LinearLayout(holder.cardView.getContext());
holder.layout.setId(position);
AddItemMenu.getInstance().addCardItem(position);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
holder.layout.setOrientation(LinearLayout.VERTICAL);
holder.layout.setLayoutParams(params);
holder.cardView.addView(holder.layout);
View viewPlus = new ItemPlus().onCreateView((LayoutInflater) holder.layout.getContext().
getSystemService(Context.LAYOUT_INFLATER_SERVICE), holder.layout, new Bundle());
holder.layout.addView(viewPlus);
AddItemMenu.getInstance().getLayoutArrayList().add(holder.layout); //отдельный класс синглтон, в котором храню ArrayList<LinearLayout>
} else {
holder.cardView.addView(AddItemMenu.getInstance().getLayoutArrayList().get(position));//тут пытаюсь заполнить новые карточки данными
}
}
@Override
public int getItemCount() {
return data.size();
}
public static class FineFoodHolder extends RecyclerView.ViewHolder {
protected View view;
private CardView cardView;
private LinearLayout layout;
public FineFoodHolder(final View itemView) {
super(itemView);
cardView = (CardView) itemView.findViewById(R.id.card_view);
}
}
хотя наверно ещё if (AddItemMenu.getInstance().getLayoutArrayList().size() != data.size()) будет косячить на карточках, которые не умещаются на экран, но проблема не в ней. Как можно проверить, существует ли данный индекс в массиве bли ток try-catch? Ведь карточки создаются по мере их выведения на экран, соответсвено, если я только слежу за и количеством layout, то будет неправильно работать, если список длинный и не умещается весь на экран, то просмотрев половину и вернувшись к верхней карточке, пересоздаются верхние карточки и в месте с ними layout - ты