[关闭:resizehandler在这种情况下也可以工作。与“横向宽度”计算相关的代码错误。]
iam使用gwt构建我的(第一个)桌面/移动应用程序。目前我正忙于浏览器中的粗略呈现。
所以,用这个方法:
window.getclientwidth()
以及
window.addresizehandler文件
它很容易从客户端浏览器变成实际的宽度值。效果很好!:-)
但是,如果我把手机调到90度° 当屏幕变为横向模式时,resizehandler会忽略这一点。我需要更新浏览器以使事情发生。
但是,其他商业网站没有这个问题,那么浏览器中一定有一个返回值来显示这个变化吗?
有人知道我应该往哪个方向看吗?
//vertical/horizontal ?
private void screenAlignment(){
if (Window.getClientWidth() > Window.getClientHeight()){
alignment = "horizontal";
} else {
alignment = "vertical";
}}
}
// first start orientation
private void dynamicFlexTableInit(){
if (alignment.equals("vertical")){
windowWidthRootFlexTable = Math.round(Window.getClientWidth() * 0.97f);
root.setWidth(String.valueOf(windowWidthRootFlexTable) + "px");
}else {
windowWidthRootFlexTable = Math.round(Window.getClientWidth() * 0.57f);
windowsHeight = Window.getClientHeight();
//GWT.log("<dynamicFlexTableInit> Windows Breite: " + windowWidthRootFlexTable);
root.setWidth(String.valueOf(windowWidthRootFlexTable) + "px");
}
}
// resizeManager
private void resizeManager(FlexTable root){
// last alignemt
lastAlignment = alignment;
Window.addResizeHandler(new ResizeHandler() {
@Override
public void onResize(ResizeEvent resizeEvent) {
// alignment check
screenAlignment();
// new alignment ?
if (!lastAlignment.equals(alignment)){
// update last alignment
lastAlignment = alignment;
// check/change width
dynamicFlexTableInit();
}}
});
}
暂无答案!
目前还没有任何答案,快来回答吧!