GWT изменение размера разделяемой панели

#gwt #resize #splitpanel

#gwt #изменить размер #разделяемая панель

Вопрос:

У меня есть, 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 (и его элементов) при изменении размера браузера?

Ответ №1:

Заз правильный.

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

Ответ №2:

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