创建一个简单的垂直布局?无法填满所有空间

时间:2012-11-13 15:11:23

标签: gwt

我无法设置简单的布局。我想要一个垂直面板下面的画布。类似的东西:

VerticalPanel parent = new VerticalPanel();
parent.setWidth("100%");
parent.setHeight("100%");

HorizontalPanel hp = new HorizontalPanel();
hp.setWidth("100%");
parent.add(hp);

Canvas canvas = Canvas.createIfSupported();
canvas.setWidth("100%");
canvas.setHeight("100%");
parent.add(canvas);

所以基本上我希望顶部面板“hp”只有其内容需要的高度,并且页面的其余部分应该用canvas元素填充。但是我得到了奇怪的效果,画布似乎只填充了屏幕的一部分等。它在布局后报告其高度约为200px,而可用高度应该在600px左右。

由于

1 个答案:

答案 0 :(得分:0)

可能画布不会占用所有空间,因为不包含任何内容,或者因为未设置大小而默认为300px。请参阅:GWT Canvas - Save image and open it

<强>更新

垂直和水平面板只是HTML表格。他们将占用与其内容高度相同的空间。

相反,您可以使用:DockLayoutPanel

public void onModuleLoad() 
{
    DockLayoutPanel dockLayoutPanel = new DockLayoutPanel(Unit.PCT);
    dockLayoutPanel.addNorth(new Label("My header"),5);

    Canvas canvas = Canvas.createIfSupported();
    canvas.getElement().getStyle().setBackgroundColor("red");
    canvas.setWidth("100%");
    canvas.setHeight("100%");

    dockLayoutPanel.add(canvas);

    RootLayoutPanel.get().add(dockLayoutPanel);
}

同时检查:Developer's Guide - Layout Using Panels