GWT - обработчик изменения окна браузера
Я разрабатываю приложение GWT, которое отображает текст на холсте. Я хочу изменить размер холста при изменении размера окна браузера. Проблема в том, что если я использую Window.addResizeHandler, процесс рендеринга с каждым изменением размера будет очень медленным. Поэтому мне нужно изменить размер холста только тогда, когда пользователь отпустит кнопку мыши после завершения изменения размера. Есть ли способ сделать это?
Ответы
Ответ 1
Вы можете добавить задержку, так что изменение размера обрабатывается только после того, как окно не было изменено на некоторое количество миллисекунд:
Window.addResizeHandler(new ResizeHandler() {
Timer resizeTimer = new Timer() {
@Override
public void run() {
doComplexLayoutCalculations();
}
};
@Override
public void onResize(ResizeEvent event) {
resizeTimer.cancel();
resizeTimer.schedule(250);
}
});
Ответ 2
Window.addResizeHandler(new ResizeHandler() {
@Override
public void onResize(ResizeEvent event) {
Scheduler.get().scheduleDeferred(
new Scheduler.ScheduledCommand() {
public void execute() {
// layout stuff
}
});
}
});