我正在尝试创建一个窗口,然后使用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。为什么呢?
它应该呈现什么:
它的作用是什么:
答案 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);
}