【问题标题】:Add child view to two layouts (multiple parents)将子视图添加到两个布局(多个父级)
【发布时间】:2013-09-11 02:14:29
【问题描述】:

我想将相同的视图添加到之前添加到另一个的新 RelativeLayout。

 RelativeLayout1
   -- View1
   -- ScrollView
      -- Linear Layout2

我有一个添加到线性布局2 的视图,它被添加到滚动视图中。我想在 View1 的地方添加相同的子视图到 RelativeLayout1。

我以这种方式添加视图,

MyCustomScrollView scrollView = new MyCustomScrollView(context);
  layout2 = new LinearLayout(context);

  for(int i=0;i<10;i++)
     layout2.addView(list.get(i));

  scrollView,add(layout2);
  relativeLayout1.addView(scrollView);

现在我想将列表中的相同视图添加到 RelativeLayout1 来代替 View1

 RelativeLayout1.remove(view1);
 RelativeLayout1.addView(list.get(0),0);



Causes 

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
    at android.view.ViewGroup.addViewInner(ViewGroup.java:2062)
    at android.view.ViewGroup.addView(ViewGroup.java:1957)
    at android.view.ViewGroup.addView(ViewGroup.java:1914)

【问题讨论】:

    标签: android view


    【解决方案1】:

    View 不能是两个 ViewGroup 父母的孩子。

    随意克隆View并将克隆添加到第二个父级。

    【讨论】:

    • @dcanh121:“克隆”是指创建同一类的另一个实例,并将其设置为具有相同的属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多