GWT SplitLayoutPanel изменить размер - PullRequest
2 голосов
/ 14 апреля 2011

У меня есть 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 ]

4 голосов
/ 22 июня 2012

Зас правильно.

SplitLayoutPanel mainPanel = new SplitLayoutPanel() {
    @Override
    public void onResize() {
        super.onResize();
        //some other resizing stuff
    }           
};
3 голосов
/ 14 апреля 2011

SplitLayoutPanel реализует requireResize и ProvidesResize по мере его расширения от DockLayoutPanel. Вы можете переопределить метод onResize (), чтобы сделать то, что вы хотите. Также может потребоваться вызвать базовый метод onResize () в вашем переопределении.

...