我正在开发一个在画布上呈现文本的GWT应用程序。我想在调整浏览器窗口大小时调整画布大小。问题是如果我使用Window.addResizeHandler,每次调整大小的渲染过程都会非常慢。因此,只有当用户在完成调整大小后释放鼠标按钮时,我才需要一种方法来调整画布大小。反正有吗?
答案 0 :(得分:37)
你可以添加一个延迟,这样只有在窗口没有调整大小几毫秒之后才会处理调整大小:
Window.addResizeHandler(new ResizeHandler() {
Timer resizeTimer = new Timer() {
@Override
public void run() {
doComplexLayoutCalculations();
}
};
@Override
public void onResize(ResizeEvent event) {
resizeTimer.cancel();
resizeTimer.schedule(250);
}
});
答案 1 :(得分:3)
Window.addResizeHandler(new ResizeHandler() {
@Override
public void onResize(ResizeEvent event) {
Scheduler.get().scheduleDeferred(
new Scheduler.ScheduledCommand() {
public void execute() {
// layout stuff
}
});
}
});