如何让GWT RequiresResize.onResize响应缩放?

时间:2012-06-23 15:55:19

标签: gwt resize

缩放后不调用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);
      }
    });
  }-*/;

我为capturing resize events找到的唯一解决方案是使用轮询。

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

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

  3. 谢谢

    当前解决方案 寻找改进

    @Override
      protected void onLoad() {
    
        Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
    
          @Override
          public boolean execute() {
    
            if (listOuter.getOffsetWidth() != knownWidth)
              onResize();
    
            return SomeListViewImpl.this.isAttached();
          }
        }, 200);
    
      }
    

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

     @Override
      public void onResize() {
    
        knownWidth = listOuter.getOffsetWidth();
        GWT.log("resize: " + knownWidth);
    
        //some magic
    
      }
    

0 个答案:

没有答案