在Java中创建所需数量的TableLayouts的布局不称为designtime。
当我调用createPlayerTables()时,我收到一个IllegalStateException告诉我在将View分配给另一个父View之前从其当前父View删除该View
当我尝试将ImageViews列表中的ImageView添加到第一个TableRow时,在此循环的第一行抛出异常:
for (int i = 0; i < 3; i++) {
tableRowsLst.get(0).addView((ImageView) imageViewsLst.get(i));
tableRowsLst.get(1).addView((ImageView) imageViewsLst.get(i+3));
}
该错误表明ImageView 已被添加到ViewGroup中 ,但是看到下面的代码,我创建了新的ImageViews,并且只将它们添加到ViewGroup中出现错误的行,所以我不确定为什么它会失败。
// List imageViewsLst = new ...
// List tableRowsLst = new ...
/**
* Initialises the TableLayouts, one per player
*/
private TableLayout createPlayerTables(int playerNum) {
...
for (int i = 0; i < 6; i++) {
imageViewsLst.add(new ImageView(this));
...
}
for (int i = 0; i < 3; i++) {
tableRowsLst.add(new TableRow(this));
...
}
for (int i = 0; i < 3; i++) {
tableRowsLst.get(0).addView((ImageView) imageViewsLst.get(i));
tableRowsLst.get(1).addView((ImageView) imageViewsLst.get(i+3));
}
...
}