在GWT中调整屏幕大小

时间:2014-03-20 07:55:09

标签: gwt

我正在开发一个GWT Web应用程序,我想将resize功能包含在容器中。为此,我在FlowPanel中实现了可调整大小的垂直和水平面板的组合。好吧,resize方法的代码如下:

Window.addResizeHandler(new ResizeHandler() {
    @Override
    public void onResize(ResizeEvent event) {   
        flowPanel.setHeight(event.getHeight()+"px"); 
        flowPanel.setWidth(event.getWidth()+"px");
    }
});

但是,当我更改窗口的大小时,Web元素的大小不会改变。你知道怎么实现吗?

非常感谢你提前!!!

2 个答案:

答案 0 :(得分:4)

您可能想要查看布局解决方案。当您需要使用ResizeHandler时,极少数情况下。通常,您可以通过使用随窗口自动调整大小的LayoutPanel(或水平/垂直面板)或使用CSS来实现所需的布局。然后,您的布局将对浏览器窗口中的任何更改做出很好的响应,并且您无需为此编写任何代码。

编辑:

为了使窗口小部件自动调整大小,父窗口小部件必须实现ProvideResize,子窗口小部件必须实现Resizable。 FlowPanel也没有实现。一旦你使用它,调整事件链就会被打破。

通常,我使用LayoutPanel作为我最外面的容器。它在添加到RootPanel时占据整个浏览器窗口,并使用Window进行调整。垂直和水平面板类似。

答案 1 :(得分:1)

使用,

window.getClientWidth();
window.getClientHeight();

根据您的组件大小,您可以 - / + px并使用。