所以我有一个VerticalLayout
的对象。
没有设置高度 - 内部组件看起来很好:每个标签占用尽可能少的空间并保持在顶部:
但是,如果我使用filesLayout.setHeight("400px");
将布局高度设置为400px - 我的3个标签中的每一个都开始占用33%的空间:
我只希望我的标签只占用所需的空间,而我的VerticalLayout只要我设置它就可以了。求你帮帮我。
答案 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会是更好的容器。