我的页面上有一张带按钮的桌子。按钮太多了,我有一个滚动器可以向下滚动表格。
按钮“ onClick”将生成一个带有滚动面板,内容和关闭此对话框的按钮的对话框。我使用DialogBox.center()将其居中。按下时,假设表格中的第一个按钮,对话框严格显示在中央....但是当我向下滚动页面并按下表格底部的按钮时,我的DialogBox仍显示在“旧”对话框中中心...几乎在我的视野之上。它只是不会根据我的滚动条位置向下移动。
我试图更改setPopupPosition(),setPopupPositionAndShow()等,但没有帮助。
有什么主意吗?这是我的对话框的一些代码:
public class MyDialogBox extends DialogBox {
public MyDialogBox(final String caption, final String text) {
setText("Caption: " + caption);
VerticalPanel inner = new VerticalPanel();
Label msg = new Label(text);
Button ok = new Button("Close");
ok.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
MessageTextBox.this.hide();
}
});
inner.add(msg);
ScrollPanel scrollbar = new ScrollPanel(inner);
scrollbar.setSize("640", "480");
VerticalPanel outer = new VerticalPanel();
outer.add(scrollbar);
outer.add(ok);
setWidget(outer);
}
}
这是我的按钮的调用方式:
VerticalPanel mainPanel ... //MainPanel with a lot different elements, it contains panel with buttons
VerticalPanel panel ... //Panel with buttons
panel.setViewButtonHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
MyDialogBox dialogBox = new MyDialogBox("Caption", "Some text");
dialogBox.center();
dialogBox.show();
}
});
mainPanel.add(panel);
最佳答案
提到的问题的来源似乎很简单。 Chrome无法正确居中对话框。我检查了FF,IE ...并按计划工作。