scene2d模式对话框的典型用例是在其中有两个按钮,一个用于用户操作确认,另一个用于取消。
只需单击此取消按钮即可关闭(隐藏)对话框窗口(这是默认行为,基本上只需要所有操作,因为我们不希望发生任何事情),但随后重复应该执行的操作再次显示它(例如,单击“删除”按钮以显示删除确认对话框)会导致无效(因为对话框现在已隐藏)。
启用对话框的正确方法是什么?
应该在No按钮监听器中调用show()吗?
noButton.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
deleteDialog.show(stage);
};
official scene2d code example每次都会创建一个新对话框,但我的理解是重用这些元素会更好。
答案 0 :(得分:1)
我猜你的对话框是一个变量:
Group dialog = new Group();
你可以这样添加:
stage.addActor(dialog);
要删除的侦听器 - 删除方法不会删除任何内容,它只是从舞台中删除了演员:
noButton.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
dialog.remove();
};
然后当你想再次显示它时:
stage.addActor(dialog);