我正在使用GWT 2.4,GWTP和Chrome 22.0.1229.94进行测试。几天来,我一直在努力解决这个问题。
在启动时,我使用扩展了PopupViewImpl的视图呈现自定义PopupDialog。在重写的onReveal()方法中,我将对话框置于中心位置。 GWTP代码同步并使用scheduleDeferred。
在开发模式下,在本地服务器上运行的一切都按预期工作:弹出对话框始终呈现并正确居中。我也在IE中测试过。
但是,当部署到Internet上的实时Web服务器时,我注意到当我使用F5刷新时,有时在脚本尝试使对话框居中之前不会应用CSS。这导致测量错误,并且对话框不在中心。有趣的是,这似乎只是偶尔发生,通常是在调用调度的延迟命令之前浏览器在渲染所有(CSS)资源方面不够快时。
所以,我已经尝试了以下内容:
我注意到Chrome和IE中的行为相同,因此可能不是浏览器问题。我的问题是在哪里放置我的“中心”-call以确保在正确应用所有CSS之后调用它,或者我还能做些什么来强制CSS渲染?
谢谢!
以下是Presenter中扩展PresenterWidget的onReveal代码:
@Override
protected void onReveal() {
super.onReveal();
// Hide loading image
fireEvent(new HideApplicationLoadingImageEvent());
// Reset message
getView().setStatusMessage(null);
// Center the popup
getView().center();
}
答案 0 :(得分:0)
方法addToPopupSlot(child,boolean center);如果您为中心参数发送true,则需要注意以GWTP为中心弹出示例: - addToPopupSlot(widget,true)