缩放后不调用 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);
}
});
}-*/;
我发现用于捕获调整大小事件的唯一解决方案是使用轮询。
投票是最好的(唯一的)方式吗?如果是这样,如何使用调度程序来获得最佳性能?
捕获事件后,调用 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
}