虽然我已经解决了很多关于相对布局和以编程方式添加 subview 的问题,但我无法解决这个问题
for (int i=0; i<views; i++) {
ImageView img = new ImageView(this);
LayoutParams img_params= new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
img_params.addRule(RelativeLayout.ALIGN_PARENT_LEFT|RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
relativeLayout.addView(img, img_params);
TextView textview = new TextView(this);
LayoutParams text_params= new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
text_params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT|RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
relativeLayout.addView(textview, text_params);
}
我在下面添加了日志:
06-27 11:16:38.849: E/AndroidRuntime(20595): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
最佳答案
您在循环中一遍又一遍地添加相同的 View 对象。第一次循环运行时,添加了两个 View ,它们现在有了一个父 View 。无法再次添加。
您需要在每次迭代中实例化这些 View 的新实例才能使其正常工作。
关于android - 将 subview 添加到相对布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17335588/