GWT DialogBox自动调整大小

时间:2013-08-15 08:49:44

标签: gwt resize popup dialog

我有一个带有弹出窗口的应用程序,我正在使用GWT DialogBox。 弹出窗口的内容可能会发生变化,因此我需要根据内容调整弹出窗口的大小。 我最初在创建时设置了弹出窗口的高度,但是如果更大则内容会显示在它之外。 删除setHeight,弹出窗口实际上适应内容,但我在弹出窗口中心时遇到问题。 当内容发生变化时,我会调用popup.center(),但是当我手动设置高度时,它并没有真正居中。

我认为这是一个计时问题,因为我在窗口调整大小时添加了一个监听器来使弹出窗口居中,在这种情况下弹出窗口正确居中。

有什么想法吗?

更新:认为我发现了这个问题。弹出窗口的内容包括一个表格。在显示表的内容之前触发ResizeEvent,因此居中实际上是考虑空表的大小。 我尝试添加一个LoadingStateChangeHandler来在状态为LOADED时触发ResizeEvent,但它仍然过早发射。

1 个答案:

答案 0 :(得分:2)

问题是,当您调用popup.center()时,尚未计算窗口小部件的新大小。 大多数人使用它作为解决方案:

// <- popup content changes here
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
    public void execute() {
        popup.center();
    }
});