У меня есть SplitLayoutPanel, где одним из дочерних компонентов является FlowPanel.Я расширил FlowPanel, чтобы создать ResizableFlowPanel, который реализует ProvidesResize и requireResize, потому что FlowPanel имеет дочерние компоненты, которые также должны изменить размер.
При перетаскивании разделителей панели SplitLayout, как получить новый размер дочерних компонентов?Я пытался использовать getOffsetWidth()
и getElement().getOffsetWidth
из FlowPanel, и оба возвращают исходный размер, а не новый размер.
Что я делаю не так?
ВотПодкласс FlowPanel, который я пытаюсь:
class ResizableFlowPanel extends FlowPanel implements ProvidesResize, RequiresResize {
ResizableFlowPanel() {
super();
}
public void onResize() {
int li_width = this.getOffsetWidth();
int li_height = this.getOffsetHeight();
System.out.println("ResizableFlowPanel:: width : " + li_width + "; height: " + li_height);
for (Widget child : getChildren()) {
if (child instanceof RequiresResize) {
((RequiresResize) child).onResize();
}
}
}
}
Я просто добавил System.out для просмотра значений в журнале при перемещении сплиттера вместо использования точек останова.Вот как я убедился, что getOffsetHeight () продолжал возвращать исходный размер.
Это также проверяет, что onResize () вызывается для FlowPanel, а также дочерних панелей.Я также попытался добавить границу к FlowPanel, чтобы увидеть, изменится ли она при перетаскивании сплиттера SplitLayoutPanel, и граница не изменится.реализует requireResize реально изменить размер?Или почему onResize () не передает новые ширину и высоту?