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

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

我只想让我的标签只占用所需的空间,只要我设置它,我的VerticalLayout就会被占用。求你帮帮我。
发布于 2018-06-01 15:36:49
VerticalLayout在所有组件之间平均分配高度。因此,对于3个组件,您将得到3行,每个行都是整个VerticalLayout高度的33%。
您可以使用.setExpandRatio(...)操作展开比率。
要使所有的Labels都在顶部,只需要向Label最后一个元素添加一个“空”Labelals最后一个元素,并告诉VerticalLayout使用最后一行的所有“溢出”高度。
Label empty= new Label();
vl.addComponent(empty);
vl.setExpandRatio(empty, 1);将其设置为1意味着它将占用溢出高度的1部分。
还有一种简单的方法可以在一次调用中做到这两种方法:
vl.addComponentsAndExpand(empty);这是你问题的答案,但你可能会回答这个问题:
当VerticalLayout的内容高于可用的高度时,我们该怎么办?但这是另一个问题,如果您希望有滚动条,那么面板可能是更好的容器。
https://stackoverflow.com/questions/50644614
复制相似问题