我有一个用于生成新布局的布局列表。
但是,问题是在将列表布局添加到新布局之前,我需要调用 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);
行上再次收到"孩子已经有父母"错误
你可以这样做
- 创建空视图
View duplicateview = new View();
- 将目标视图复制到已创建的新视图中
view = "get your target view that you need to duplicate"//your view
- 因此,您要查找的视图在
duplicateview
中重复。