Я использую gwt-dnd для реализации функций перетаскивания в моей программе GWT. Чтобы получить скроллинг работать правильно, мне нужноМне нужно знать, когда VerticalPanel меняет размер
<ScrollPanel>
<AbsolutePanel>
<VerticalPanel>
<!-- lots of draggable widgets -->
</VerticalPanel>
</AbsolutePanel>
</ScrollPanel>
я должен вручную установить размер AbsolutePanel быть достаточно большим, чтобы содержать VerticalPanel. Когда я добавляю виджеты в VerticalPanel, размер, о котором сообщает VerticalPanel.getOffsetHeight(), не обновляется сразу - я предполагаю, что он должен быть отображен браузером в первую очередь. Поэтому я не могу сразу обновить размер AbsolutePanel, и он становится слишком маленьким. Argh!
Мое решение «стоп-зазор» заключается в том, чтобы установить таймер, чтобы изменить размер панели на 500 мсек позже. К тому времени getOffsetHeight обычно возвращает обновленные значения. Есть ли способ немедленно просмотреть изменение размера или что-нибудь еще? Или, в качестве альтернативы, я могу заставить цикл рендеринга немедленно, чтобы я мог получить новый размер без установки таймера, который должен быть подвержен ошибкам?
Когда вы проверяете новую высоту панели? –
Я хотел бы иметь возможность проверить его сразу же после добавления нового виджета. –