假设我有一个(以编程方式创建)父级LinearLayout parent1,我用parent1.addView(childA);
添加一个(编程创建的)childA布局,然后我以某种复杂的方式设置childA - 也许它有自己的子节点。现在,我可以随后以某种方式从parent1取消链接,而不会损坏childA中的任何信息,以便我可以使用parent2.addView(childA)重新使用它吗?
答案 0 :(得分:2)
是的,你可以!
您只需要保证在将其从上一个父视图中删除之前不要将其添加到另一个视图中。
修改强>:
// assuming a previously defined childA view
View childA;
parent1.removeView(childA);
parent2.addView(childA);
答案 1 :(得分:0)
如果在添加视图时提供索引,则可以稍后再取回:
int index = // whatever
parent1.addView(childA, index);
...
View child = parent1.getViewAt(index);
parent1.removeViewAt(index);
...
parent2.addView(child, index2);
另请注意,两个父级必须是相同类型的视图组,或者您需要将子视图的layoutParams更改为新父级的相应类型