我正在为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();
}