首页 > 解决方案 > 尝试在没有父视图的情况下复制视图 - Android

问题描述

我有一个用于生成新布局的布局列表。

但是问题是,在将列表布局添加到新布局之前,我需要调用 removeView(),因为列表布局是子布局。调用此方法会从 UI 中删除看起来不太好的视图。

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 是我使用列表中的布局构建的布局。

我试图找到一种从列表中复制布局的方法,这样我认为它不会干扰我的 UI,但是调用((ViewGroup)linearLayout.getParent()).removeView(linearLayout); 仍然会从 UI 中删除它,因为它使用的是同一个父级。

有没有办法可以在没有父视图的情况下进行复制?谢谢

viewGroup.addView(cardView);编辑 - 在我最近的尝试中,我再次遇到“孩子已经有父母”错误

标签: androidviewandroid-linearlayout

解决方案


你可以这样做

  1. 创建一个空视图View duplicateview = new View();
  2. 将目标视图复制到您创建的新视图view = "get your target view that you need to duplicate"//your view
  3. 因此,您要查找的视图在duplicateview.

推荐阅读