我正在开发一个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元素的大小不会改变。你知道怎么实现吗?
非常感谢你提前!!!
答案 0 :(得分:4)
您可能想要查看布局解决方案。当您需要使用ResizeHandler时,极少数情况下。通常,您可以通过使用随窗口自动调整大小的LayoutPanel(或水平/垂直面板)或使用CSS来实现所需的布局。然后,您的布局将对浏览器窗口中的任何更改做出很好的响应,并且您无需为此编写任何代码。
编辑:
为了使窗口小部件自动调整大小,父窗口小部件必须实现ProvideResize,子窗口小部件必须实现Resizable。 FlowPanel也没有实现。一旦你使用它,调整事件链就会被打破。
通常,我使用LayoutPanel作为我最外面的容器。它在添加到RootPanel时占据整个浏览器窗口,并使用Window进行调整。垂直和水平面板类似。
答案 1 :(得分:1)
使用,
window.getClientWidth();
window.getClientHeight();
根据您的组件大小,您可以 - / + px并使用。