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

Hai*_*hib 15 gwt

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

Ril*_*ark 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);
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 实际上,你不需要"取消"定时器:对"schedule"的调用总是取消正在运行的定时器,然后再重新安排它. (10认同)
  • 为了更好地调整反馈,我倾向于限制事件.我不会在计时器已经运行时取消它,这样每隔250ms布局就会更新一次.这样可以获得更好的效果,否则仅在停止调整大小时才会调整大小. (2认同)