Libgdx Java - 根据舞台大小调整表格(表格的父级不是舞台)

时间:2018-02-16 18:50:04

标签: java libgdx

我想知道如何将表的大小调整为舞台大小,因为知道表的父级不是舞台而是另一个表。

以下是我尝试使用的代码: 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。 这就是我得到的:

enter image description here

0 个答案:

没有答案