GWT LayoutPanel大小

Ash*_*hok 0 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);
Run Code Online (Sandbox Code Playgroud)

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

lp.setsize("100%","500px");
Run Code Online (Sandbox Code Playgroud)

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

Hil*_*amp 7

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

但是,将ScrollPanel与LayoutPanels一起使用是不行的.LayoutPanel的整个想法是根据它的父级大小派生它的大小,但在ScrollPanel内部的大小不相关,因此LayoutPanel的大小可以不定.