我想知道如何将表的大小调整为舞台大小,因为知道表的父级不是舞台而是另一个表。
以下是我尝试使用的代码: TableRoot是一个将在舞台上添加的表,调用方法setFillParent(true),以便表根与舞台的大小相同。
public class StatusBoxesTable extends TableRoot {
private static ArrayList<BATTLE_PARTY> sbPartiesOrdered = new ArrayList<BATTLE_PARTY>() {{
this.add(BATTLE_PARTY.OPPONENT2);
this.add(BATTLE_PARTY.OPPONENT);
this.add(BATTLE_PARTY.PLAYER2);
this.add(BATTLE_PARTY.PLAYER);
}};
// status box is a table
private HashMap<BATTLE_PARTY, StatusBox> statusBoxes;
//...
// called every times the table needs to be updated
private void refreshTable() {
this.clear();
for (BATTLE_PARTY party : StatusBoxesTable.sbPartiesOrdered) {
Table table = new Table();
table.setFillParent(true);
this.addStatusBoxOnTable(table, party);
if (BATTLE_PARTY.isPlayer(party))
this.add(table).expand().bottom().right();
else
this.add(table).expand().top().left();
}
}
private void addStatusBoxOnTable(Table table, BATTLE_PARTY party) {
if (this.statusBoxes.containsKey(party)) {
table.add(this.statusBoxes.get(party)).pad(this.getSBPad(party, Padding.TOP),
this.getSBPad(party, Padding.LEFT),
this.getSBPad(party, Padding.BOTTOM),
this.getSBPad(party, Padding.RIGHT));
}
}
//...
}
状态框是一个表格。
每一帧我刷新StatusBoxesTable,因为状态框填充可以随时间变化。我在StatusBoxesTable中添加了4个包含彼此1状态框的表,我希望所有这4个表具有与舞台相同的大小,而是将表垂直对齐到StatusBoxesTable。 这就是我得到的: