如何使用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)
方法。
我创建了一个对话框并添加了一个按钮 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)
方法。