我正在通过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);
}
任何形式的帮助将不胜感激。
答案 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);