2

私は、ドックの中央と南端に1つずつ、2つの内側にTabPanelを含むを持っています。ブラウザウィンドウのサイズを変更しても、自動的にサイズが変更されません。私はこのコードで問題を解決しようとします:SplitLayoutPanelScrollPanelSplitLayoutPanel

     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

Zaszは正しいです。

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

SplitLayoutPanelは、DockLayoutPanelから拡張されるため、RequiresResizeとProvidesResizeを実装します。onResize()メソッドをオーバーライドして、必要な処理を実行できます。また、オーバーライドでベースのonResize()メソッドを呼び出す必要がある場合もあります。

于 2011-04-14T11:42:57.453 に答える