【发布时间】:2013-02-14 05:32:05
【问题描述】:
调用 .center() 使面板在整个页面上居中。我想让它成为当前视口的死点...另外我想防止滚动..但也许我会回到那个。
【问题讨论】:
标签: gwt mobile-safari centering
调用 .center() 使面板在整个页面上居中。我想让它成为当前视口的死点...另外我想防止滚动..但也许我会回到那个。
【问题讨论】:
标签: gwt mobile-safari centering
死点留给用户练习,但关键组件是 Window.getScrollTop() 和 Window.getScrollLeft()
【讨论】:
标准的center() 方法不能满足您的要求。所以你必须自己计算位置。有一个大问题是您的弹出窗口在实际显示之前没有大小。在完全附加到 DOM 之前,无法查询任何 DOM 元素的大小。您必须继承 GWT 弹出窗口类并覆盖 onLoad() 方法来获取弹出窗口的大小。试试这样的:
public class CenteredDialogBox extends DialogBox {
private Widget _parent;
public CenteredDialogBox(Widget parent) {
_parent = parent;
}
@Override
public void onLoad() {
super.onLoad();
int parentMiddle = _parent.getAbsoluteLeft() + _parent.getOffsetWidth() / 2;
int popupLeft = parentMiddle - getOffsetWidth() / 2;
int parentCenter = _parent.getAbsoluteTop() + _parent.getOffsetHeight() / 2;
int popupTop = parentCenter - getOffsetHeight() / 2;
setPopupPosition(popupLeft, popupTop);
}
}
【讨论】: