2

我有一个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浏览器大小(及其元素)?

4

2 回答 2

4

扎兹是对的。

SplitLayoutPanel mainPanel = new SplitLayoutPanel() {
    @Override
    public void onResize() {
        super.onResize();
        //some other resizing stuff
    }           
};
于 2012-06-22T15:24:03.183 回答
3

SplitLayoutPanel 实现了 RequiresResize 和 ProvidesResize,因为它从 DockLayoutPanel 扩展而来。你可以重写 onResize() 方法来做你想做的事。此外,可能还需要在您的覆盖中调用基本的 onResize() 方法。

于 2011-04-14T11:42:57.453 回答