我正在为iPad Safari开发GWT画布。当我旋转设备时,画布尺寸仍然相同。我不使用任何CSS3,所有内容都已在JAVA代码中设置(并且所有内容都为setSize(“ 100%”,“ 100%”))。有人遇到过这个问题吗?他们有什么解决方案,为什么会这样?

更新
经过几次测试后,似乎每个设备上都有问题。它不会在android设备甚至PC上调整大小(将屏幕旋转90度后)

最佳答案

我的项目的样本

if(isIOS()) {
    // for iOS
    DOM.setElementAttribute(RootPanel.getBodyElement(), "onorientationchange", "updateOrientation();");
} else {
    // for android
    Window.addResizeHandler(this);
}

private final native void exportUpdateOrientationEvent() /*-{
    $wnd.updateOrientation = @com.xxx.Client::updateOrientation();
}-*/;

public static void updateOrientation() {
    int innerWidth = getWindowInnerWidth();
    int innerHeight = getWindowInnerHeight();
    // TODO canvas.setSize(innerWidth, innerHeight);
}

public static native int getWindowInnerWidth()/*-{
    return $wnd.innerWidth;
}-*/;

public static native int getWindowInnerHeight()/*-{
    return $wnd.innerHeight;
}-*/;

@Override
public void onResize(ResizeEvent event) {
    updateOrientation();
}

10-05 22:46