GWT - 浏览器窗口调整大小的处理程序

时间:2011-04-17 10:53:40

标签: gwt

我正在开发一个在画布上呈现文本的GWT应用程序。我想在调整浏览器窗口大小时调整画布大小。问题是如果我使用Window.addResizeHandler,每次调整大小的渲染过程都会非常慢。因此,只有当用户在完成调整大小后释放鼠标按钮时,我才需要一种方法来调整画布大小。反正有吗?

2 个答案:

答案 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
                    }
                });
    }

});