使用GWT中的DockLayoutPanel调整和滚动问题

时间:2011-06-28 10:25:44

标签: web-applications gwt layout browser

我正在使用GWT创建一个Web应用程序。我的基本面板是一个RootLayoutPanel,我在其上添加了一个DockLayoutPanel,我在其上附加了我的组件(聊天,表格等)。

我的问题在于更改浏览器窗口大小。我希望我的页面只调整大小,直到某个最小维度,然后我希望滚动条变为活动状态。

我尝试使用overflow和min-width css属性,但它似乎不起作用:如果我设置我的DockLayoutPanel最小宽度:800px(例如),面板将完全可见,直到我的浏览器窗口宽度为800px,这是正确的,但如果我再次减小窗口大小,滚动条不会激活,并且无法以任何方式查看面板的更多外部部分。

我希望我的解释清楚。谢谢你的建议。

2 个答案:

答案 0 :(得分:3)

不确定它是否仍有帮助,但我遇到了类似的问题并找到了这样的解决方案 - 如http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#Resize中的GWT文档中所述 我在我的root html页面添加了一个标签:

<body>
..
<div id="main" ></div>
..
</body>

然后在onModuleLoad方法中,而不是像以下那样添加面板:

interface Binder extends UiBinder<Widget, BasicApp> { }
private static final Binder binder = GWT.create(Binder.class);

public void onModuleLoad() {
  DockLayoutPanel outer = binder.createAndBindUi();
  RootLayoutPanel.get().add(outer);
}

我这样做:

public void onModuleLoad() {
    DockLayoutPanel outer = binder.createAndBindUi();
    LayoutPanel panel = new LayoutPanel();
    panel.add(outer);
    RootPanel.get("main").add(panel);
    panel.setSize("800px", "800px");
}

请注意,您必须明确设置面板的大小才能在网页上正确显示。 当面板大小超过窗口大小时,您现在应该像在任何其他网页上一样滚动。

答案 1 :(得分:0)

尝试

RootLayoutPanel().get().add(new ScrollPanel(dockLayoutPanel));