如何使用Libgdx Scene2d Dialog?

How to use Libgdx Scene2d Dialog?

我创建了一个对话框并添加了一个按钮 actor。

windowStyle = new Window.WindowStyle(boldFont, Color.WHITE, drawable);
dialog = new Dialog("Error", windowStyle);
dialog.getContentTable().add(resetButton);

但问题是,当我执行 dialog.show(stage) 时,只有对话框的背景位于中心,字符串 "Error" 位于对话框背景的左上角,而 resetButton也没有对齐。

您可以在这里做几件事。 Dialog class 中至少有三个表。 "Error" 字符串添加到 titleTable。您可以创建一个空的标题对话框:

dialog = new Dialog("", windowStyle);

然后手动添加标题并将其居中:

dialog.getTitleTable().add(new Label("Error", new Label.LabelStyle(boldFont, Color.WHITE)).center().expand();

resetButton 相同,但您可以使用 getContentTable()getButtonTable() 方法。

如果您想调整对话框的大小或重新定位 window,我发现这样做的唯一方法是创建您自己的对话框 class、MyDialog extends Dialog 并覆盖 getPrefHeight()getPrefWidth()setPosition(x, y) 方法。