Libgdx表太小,不填充视口

时间:2012-10-01 04:57:11

标签: java libgdx

我正在尝试使用表来创建带有排列的按钮和标签的菜单。我正在使用最新的每日构建的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的正确大小。

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

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

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

我需要调用fillX()的{​​{1}}方法:

row()

希望这有助于某人。

答案 1 :(得分: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();

答案 2 :(得分:0)

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

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

设置将均匀地应用于所有行和单元格。