0

缩放后不调用 onResize。

当前的 GWT 实现:

public native void initWindowResizeHandler() /*-{
    var oldOnResize = $wnd.onresize;
    $wnd.onresize = $entry(function(evt) {
      try {
        @com.google.gwt.user.client.Window::onResize()();
      } finally {
        oldOnResize && oldOnResize(evt);
      }
    });
  }-*/;

我发现用于捕获调整大小事件的唯一解决方案是使用轮询。

  1. 投票是最好的(唯一的)方式吗?如果是这样,如何使用调度程序来获得最佳性能?

  2. 捕获事件后,调用 com.google.gwt.user.client.Window::onResize() 似乎是个好主意吗?

谢谢

当前正在寻求改进的

@Override
  protected void onLoad() {

    Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {

      @Override
      public boolean execute() {

        if (listOuter.getOffsetWidth() != knownWidth)
          onResize();

        return SomeListViewImpl.this.isAttached();
      }
    }, 200);

  }

onResize 在 Window.onresize 和缩放上调用。

 @Override
  public void onResize() {

    knownWidth = listOuter.getOffsetWidth();
    GWT.log("resize: " + knownWidth);

    //some magic

  }
4

0 回答 0