我正在使用GWT 2.4,GWTP和Chrome 22.0.1229.94进行测试。我已经在这个问题上挣扎了几天。
在启动时,我使用扩展了popupviewimpl的视图提出了一个自定义弹出式弹出器。在覆盖的reveal()方法中,我将对话框中心。GWTP代码同步中心,也使用ScheduleDeferred。
在开发模式下并在本地服务器上运行,一切都按预期运行:弹出对话框始终呈现和居中。我也在IE中进行了测试。
但是,当在Internet上部署到实时Web服务器时,我会注意到,当我使用F5刷新时,有时在脚本尝试将对话框居中之前不会应用CSS。这会导致测量错误,并且对话框未放置在中心。有趣的是,这似乎只有时不时地发生,通常是当浏览器在调用计划延期命令之前呈现所有(CSS)资源时不够快。
。所以,我已经尝试了以下内容:
- 使用不同技术加载CSS(在HTML文件中引用,GWT模块中的参考,放入CSSRESOUCE)
- 使用Scheduler.get()。scheduledeferred作为默认代码也可以。
- 调用RootlayOutPanel.get()。onReveal中的onResize()尝试在递延之前触发某些布局。
我注意到Chrome和IE中的行为相同,因此这可能不是浏览器问题。我的问题是将我的"中心"插入在哪里,以确保在适当应用所有CSS之后被调用,或者如果我还能做其他任何事情来强制CSS渲染?
谢谢!
这是主持人中的供电代码,扩展了ErstanserWidget:
@Override
protected void onReveal() {
super.onReveal();
// Hide loading image
fireEvent(new HideApplicationLoadingImageEvent());
// Reset message
getView().setStatusMessage(null);
// Center the popup
getView().center();
}
有方法addtopopupslot(Child,Boolean Center);如果您发送true以进行中心参数,请注意将弹出窗口集中在gwtp示例中: - addtopopupupslot(widget,true)