动态查看通胀错误

时间:2017-12-05 11:21:49

标签: android android-layout

我正在通过XML创建视图。

但在添加视图后,它会抛出错误 -

  

指定的孩子已经有父母。您必须首先在孩子的父母身上调用removeView()。

我正在使用以下代码 -

LinearLayout main = new LinearLayout(mContext);
main.setId(R.id.main);
main.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
main.setLayoutParams(layoutParams);

LinearLayout sub1 = new LinearLayout(mContext);
sub1.setId(R.id.sub1);
sub1.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams layout_662 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
sub1.setLayoutParams(layout_662);


LinearLayout sub2 = new LinearLayout(mContext);
sub2.setId(R.id.sub2);
sub2.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams layout_943 = new  LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
sub2.setLayoutParams(layout_943);

for(int i=0;i<=4);i++) {

    sub1.addView(imageView[i]);
    main.addView(sub1);

    sub2.addView(imageView1[i]);
    main.addView(sub2);
}

任何形式的帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

以这种方式更改您的for语句:

    main.addView(sub1);
    main.addView(sub2);

    for(int i=0;i<=4);i++) {

        sub1.addView(imageView[i]);

        sub2.addView(imageView1[i]);
    }

您只需添加一次sub1和sub2。

答案 1 :(得分:0)

你有

main.addView(sub1);

在for循环中。所以在第二个循环中,它已经添加到父视图中。

答案 2 :(得分:0)

如下所示使用它。

 for(int i=0;i<=4);i++) {
        sub1.addView(imageView[i]);
        sub2.addView(imageView1[i]);
    }
    main.addView(sub1);
    main.addView(sub2);