У меня есть пара виджетов GWT, которые отображаются в виде.Как определить, полностью ли визуализирован вид?
Представление содержит контент, как это:
FlowPanel mainPanel = new FlowPanel();
RootPanel.get().add(mainPanel);
Label label = new Label("test");
mainPanel.add(label);
FlowPanel otherPanel = new FlowPanel();
mainPanel.add(otherPanel);
mainPanel получает свою окончательную высоту после того, как был полностью оказаны. Мне нужно получить значение высоты из mainPanel после завершения процесса рендеринга.
Вот что я до сих пор:
new Timer() {
@Override
public void run() {
int height = $(mainPanel).height();
// do something with the mainPanel height
}
}.schedule(300);
Noite: $ (mainPanel) является использование GWTQuery. Я установил таймер, чтобы надеяться, что процесс визуализации будет завершен при срабатывании таймера. Я полагаю, это не очень умное решение.
Как определить, полностью ли отображается представление, чтобы получить окончательную высоту mainPanel?
Edit:
Я также попытался использовать:
@Override
protected void onReveal() {
super.onReveal();
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
// get mainPanel height is incorrect
}
});
}
но мне кажется, что визуализация не была завершена, так что mainPanel не имеют правильную высоту.
Edit:
кажется, что планировщик работает по-разному на мобильных и настольных при использовании SDM. Я создал демонстрационный проект (https://github.com/confile/GWT-2.7-Scheduler-Test), чтобы показать проблему.
я создал еще один вопрос по этому вопросу здесь: https://stackoverflow.com/questions/27128787/gwt-2-7-scheduler-works-different-on-mobile-and-desktop-in-sdm
Может это поможет http://stackoverflow.com/q/8012588/768894 – EMM