Libgdx“打包”,不工作,我可能做错了什么?

时间:2014-09-12 12:49:38

标签: java libgdx

我正在尝试创建一个窗口,然后使用pack方法获得正确的大小,但窗口最大化。这是我的代码:

private Table buildOptionsWindowLayer() {
    winOptions = new Window("Options", skinLibgdx);
    // (...) building some widgets

    Gdx.app.log(TAG, "pref width is " + winOptions.getPrefWidth());
    // displays: "pref width is 247.0"

    winOptions.pack();

    // move the window
    winOptions.setPosition(Constants.VIEWPORT_GUI_HEIGHT - winOptions.getWidth() - 50, 50);
    return winOptions;
}

窗口最终宽度为800.0f。为什么呢?

它应该呈现什么: enter image description here

它的作用是什么: enter image description here

2 个答案:

答案 0 :(得分:0)

pack() documentation一个读数。我相信你的.pack是问题,因为它在你之前调用了超类的构造函数。

答案 1 :(得分:0)

我知道这是一个旧线程,但我遇到了同样的问题。您可以移动包并将调用定位到onOptionsClicked方法,以便在显示窗口后调用它们。

private void onOptionsClicked()
{
    loadSettings();
    btnMenuPlay.setVisible(false);
    btnMenuOptions.setVisible(false);
    winOptions.setVisible(true);

    winOptions.pack();
    winOptions.setPosition(Constants.VIEWPORT_GUI_WIDTH - winOptions.getWidth() - 50, 50);
}