#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 () также в вашем переопределении.