Попытка дублировать представление без его родителя - Android - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть список макетов, которые я использую для создания нового макета.

Однако проблема в том, что перед добавлением макетов списка в новый макет мне нужно вызвать removeView (), так как макеты списка являются дочерними. Вызов этого метода удаляет представление из пользовательского интерфейса, который выглядит не очень хорошо.

LinearLayout linearLayout = null;

        for(LinearLayout cardView : selectedCardIDList){
            viewHeight += cardView.getHeight();
            if(viewHeight < 842){
                ViewGroup viewGroup = ((ViewGroup)cardView.getParent());
                viewGroup.removeView(cardView);
                linearLayout = cardView;
                pdfViewLayout.addView(linearLayout);
                viewGroup.addView(cardView);
            }
}

pdfViewLayout - это макет, который я создаю с использованием макетов из списка.

Я пытался найти способ продублировать макет из списка, таким образом я думал, что это не помешает моему пользовательскому интерфейсу, однако вызывал ((ViewGroup)linearLayout.getParent()).removeView(linearLayout); по-прежнему удаляет его из пользовательского интерфейса, поскольку использует тот же родительский элемент.

Есть ли способ сделать копию без родительского представления? Спасибо

Edit - при последней попытке я снова получаю сообщение об ошибке «У ребенка уже есть родитель» в строке viewGroup.addView(cardView);

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете сделать это таким образом

  1. Создать пустое представление View duplicateview = new View();
  2. Скопируйте целевой вид в новый созданный вами вид view = "get your target view that you need to duplicate"//your view
  3. , следовательно, искомый вид дублируется в duplicateview.
...