0

我无法设置简单的布局。我想要一个垂直面板下方的画布。就像是:

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”的高度与其内容需要的一样高,并且页面的其余部分应该用画布元素填充。但是我得到了奇怪的效果,画布似乎只填充了屏幕的一部分等。它在布局后报告其高度约为 200 像素,而可用高度应约为 600 像素。

谢谢

4

1 回答 1

0

可能画布不会占用所有空间,因为不包含任何内容或未设置大小且默认为 300 像素。看到这个:GWT Canvas - 保存图像并打开它

更新:

垂直和水平面板只是 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);
}

另请查看:开发人员指南 - 使用面板进行布局

于 2012-11-13T20:41:08.023 回答