GWT SplitLayoutPanel调整大小

时间:2011-04-14 10:10:05

标签: gwt resize splitpanel

我有一个TabPanel,其中包含一个SplitLayoutPanel,里面有两个ScrollPanel,一个位于中心,另一个位于码头的南边。当我调整浏览器窗口大小时,我的SplitLayoutPanel不会自动调整大小。我尝试使用此代码解决问题:

     Window.addResizeHandler(new ResizeHandler() {
            @Override
            public void onResize(ResizeEvent event) {
                    setSplitPanelSize();
            }
        });


protected void setSplitPanelSize() {
    if (getParent() != null) {
        Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
            @Override
            public void execute() {
                mainSplitPanel.setSize(getParent().getOffsetWidth() + "px", getParent().getOffsetHeight() + "px");
            }
        });
    }

}

但使用getParent()来检索TabPanel大小是一种不安全的灵魂。是否有另一种方法可以在浏览器大小调整时调整SplitLayoutPanel(及其元素)的大小?

2 个答案:

答案 0 :(得分:4)

Zasz是对的。

SplitLayoutPanel mainPanel = new SplitLayoutPanel() {
    @Override
    public void onResize() {
        super.onResize();
        //some other resizing stuff
    }           
};

答案 1 :(得分:3)

SplitLayoutPanel实现了从DockLayoutPanel扩展的RequiresResize和ProvideResize。您可以覆盖onResize()方法来执行您想要的操作。此外,可能需要在覆盖中调用基于onResize()的方法。