流体布局:未在大小未定义的容器中应用全宽度

时间:2012-11-05 11:44:42

标签: layout vaadin

我无法使用Vaadin创建流畅的布局。据我了解,为了根据容器的内容计算容器的大小,我必须使用setSizeUndefined()方法。
这样可以正常工作,但是当我想要添加具有未定义大小的容器的所有可用空间的组件时,会出现问题。我无法让它发挥作用。

以下是我正在尝试做的简化示例:

VerticalLayout layout = new VerticalLayout();
layout.setSizeUndefined();
layout.setMargin(false);

layout.addComponent(createButton("A somewhat longer label"));
layout.addComponent(createButton("Short label"));

private Button createButton(String label) {
    Button button = new Button(label);
    button.setSizeFull();
    button.setWidth("100%");
    return button;
}

按钮不占据垂直布局容器的整个宽度。我已经在这里和那里阅读过,不允许在容器内设置“100%”大小的未定义大小,但那么我应该如何实现我想要实现的目标,因为我需要为流体布局定义不确定的大小?
如果有人认为我的用例不需要未定义的大小,我将很乐意提供更多相关信息。我有一个强大的Flex背景,可能会导致遇到从错误的角度看这个问题。

1 个答案:

答案 0 :(得分:0)

您是对的,您不能在具有未定义大小的VerticalLayout中使用相对大小的组件。您要查找的功能存在于名为WeeLayout的加载项中。