在 Java 中创建所需的 TableLayout 数量的布局并不称为设计时。
当我打电话时,我收到一条IllegalStateException
告诉我View
在将其分配给另一个父级之前删除(从它的当前父级)createPlayerTables()
当我尝试将 ImageView 从 ImageViews 列表添加到第一个 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,但是看到下面的代码,我创建了新的 ImageView,并且我只将它们添加到 ViewGroup 中出错的行,所以我不确定它为什么会失败.
// List<ImageView> imageViewsLst = new ...
// List<TableRow> 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));
}
...
}