4

我正在尝试使用表格来创建带有排列好的按钮和标签的菜单。我正在使用 libgdx 的最新夜间版本,它改变了 Table API(以及其他内容)。

这是我的 Screen 构造函数中的代码:

this.mStage = new Stage();
this.mTable = new Table();
this.mTable.setFillParent(true);
this.mTable.debugTable();
this.mStage.addActor(this.mTable);

// now I add some stuff to the table
// ...

我的resize功能如下所示:

this.mStage.setViewport(width, height, true);
this.mTable.setFillParent(true);
this.mTable.invalidate();

我的render功能有以下几点:

System.out.println("Table size is " + 
    this.mTable.getWidth() + " by " + 
    this.mTable.getHeight());
this.mStage.draw();
Table.drawDebug();

虽然我的控制台显示正确的大小:

Table size is 480.0 by 640.0

表格大小在其子项周围收缩,并且未扩展到正确的 480x640 大小。

有任何想法吗?

4

3 回答 3

5

为了他人的利益回答我自己的问题。我向表中添加小部件的方式不正确:

this.mTable.row();
this.mTable.add(button).fillX();

我需要调用以下fillX()方法row()

this.mTable.row().fillX();
this.mTable.add(button);

希望这可以帮助某人。

于 2012-10-02T05:43:01.483 回答
1

要添加到上述答案,知道您可以为表设置这些设置默认值可能会有所帮助,如下所示:

this.mTable.defaults().expandX().fillX();

这些设置将统一应用于所有行和单元格。

于 2020-02-24T16:28:31.077 回答
0

通过首先使用.expandX()方法扩展一个单元格,然后通过调用fillX(). 所以你的初始代码:

this.mTable.row();
this.mTable.add(button).fillX();

应更正为以下版本:

this.mTable.row();
this.mTable.add(button).expandX().fillX();

这 2 行可以缩短为 1:

this.mTable.add(button).expandX().fillX().row();
于 2018-10-14T05:04:29.540 回答