GWT LayoutPanel大小

时间:2011-07-18 23:26:58

标签: gwt

我在GWT中尝试使用LayoutPanel的一些示例。我尝试将一个layoutpanel(大小为100%,100%)放到ScrollPanel上,而ScrollPanel又连接到rootlayoutPanel。虽然我指定的高度是100%,但它没有显示要在rootlayoutpanel中填充的layoutpanel。即使我将一个小部件添加到layoutpanel,它在设计器的视图中也不可见。我可以通过在设计器视图上显式拖动layoutpanel来查看它们。但是,这最终会迫使大小以像素为单位。为什么我发现这种行为?下面是代码:

RootLayoutPanel rp = RootLayoutPanel.get();

LayoutPanel lp = new LayoutPanel();

lp.setSize("100%","100%");

ScrollPanel sp = new ScrollPanel(lp);

rp.add(lp);

使用此代码,我只能将layoutPanel视为一行。我看不到Layoutpanel所覆盖的区域(框)。如果我尝试通过拖动手动更改高度,它会自动将布局面板的高度更改为像素:

lp.setsize("100%","500px");

为什么我会看到这种行为?有什么解释吗?

1 个答案:

答案 0 :(得分:7)

布局面板可能很棘手。 LayoutPanels基本上是绝对面板,适用于整页Web应用程序。要使其工作从根面板向下(或从调用resize且具有固定大小的面板)的所有面板必须具有RequiresResize。在你的情况下(除了在你的例子中你将lp而不是sp添加到rootpanel中的错误,但我假设你想要添加sp),你在RootPanel和LayoutPanel之间放置了一个非LayoutPanel,这打破了布局流程和因此,LayoutPanel lp无法自动调整大小。 LayoutPanel没有高度/宽度。

然而,将ScrollPanel与LayoutPanels一起使用是行不通的.LayoutPanel的整个想法是根据它的父级大小派生它的大小,但是在ScrollPanel内部的大小不相关,所以大小不一致无法设置LayoutPanel。