如何设置vaadin布局的宽度,并且仍然有内部组件占用他们需要的空间?

时间:2018-06-01 13:31:42

标签: java css sass vaadin vaadin8

所以我有一个VerticalLayout的对象。 没有设置高度 - 内部组件看起来很好:每个标签占用尽可能少的空间并保持在顶部:

example with no height

但是,如果我使用filesLayout.setHeight("400px");将布局高度设置为400px - 我的3个标签中的每一个都开始占用33%的空间:

example with height

我只希望我的标签只占用所需的空间,而我的VerticalLayout只要我设置它就可以了。求你帮帮我。

1 个答案:

答案 0 :(得分:3)

VerticalLayout在所有组件之间平均分配高度。 因此,对于3个组件,您将得到3行,每个行占VerticalLayout个高度的33%。

您可以使用.setExpandRatio(...)

操纵扩展比率

要将所有Labels放在首位,您只需要向Label添加“空”VerticalLayout als最后一个元素,并告诉VerticalLayout全部使用“溢出”高度到最后一行。

Label empty= new Label();
vl.addComponent(empty);
vl.setExpandRatio(empty, 1);

将其设置为1表示它将占用溢出高度的1个部分。

在一次通话中也有这种快捷方式:

vl.addComponentsAndExpand(empty);

这是你问题的答案,但可能你会对这个问题表示赞赏:

当VerticalLayout的内容高于可用高度时,我们该怎么办? 但这是另一个问题,如果你想要滚动条,也许Panel会是更好的容器。