即使用户向下滚动,我也需要在页面顶部显示一个加载弹出窗口。
到目前为止我尝试的是设置弹出位置如下
setPopupPosition(Window.getClientWidth()/2 , 0);
弹出窗口显示在绝对顶部。
如果您从不同的角度查看它,这种情况可以很容易地解决:不是弹出位置应该调整到页面 - 相反,页面应该在居中弹出窗口后面滚动,例如:
final ScrollPanel scrollPanel = new ScrollPanel();
RootLayoutPanel.get().add(scrollPanel);
pagePanel = new FlowPanel();
scrollPanel.setWidget(pagePanel);
pagePanel.add(...);
现在将整个页面内容添加到pagePanel
(而不是将它们直接添加到 rootPanel)。
然后你可以像这样创建弹出窗口:
final PopupPanel popupPanel = new PopupPanel();
popupPanel.add(...);
popupPanel.center();
当窗口调整大小时,您仍然需要重新居中弹出窗口,但除此之外,弹出窗口将始终位于滚动页面前面的中心。
为此,您可以实施Window.addWindowScrollHandler
. 无论您做什么,它都将始终处于领先地位。
DialogBox dialog = new DialogBox();
dialog.setWidget(...);
Window.addWindowScrollHandler(new ScrollHandler() {
@Override
public void onWindowScroll(ScrollEvent event) {
dialog.setPopupPosition((Window.getClientWidth() - widthOfDialog) / 2, event.getScrollTop());
}
});
希望这有帮助..谢谢..
对我有用的解决方案是这个
setPopupPosition(Window.getClientWidth()/2 , Window.getScrollTop());