Java 如何设置vaadin布局的宽度,并且仍然让内部组件占据所需的空间?
因此,我有一个对象Java 如何设置vaadin布局的宽度,并且仍然让内部组件占据所需的空间?,java,css,sass,vaadin,vaadin8,Java,Css,Sass,Vaadin,Vaadin8,因此,我有一个对象VerticalLayout。 不设置高度-内部组件看起来很好:每个标签占用尽可能少的空间并保持在顶部: 但是,如果我使用filelayout.setHeight(“400px”)将布局高度设置为400px-我的3个标签中的每一个开始占用33%的空间: 我只希望我的标签只占用所需的空间,我的垂直布局与我设置的一样长。请帮帮我。垂直布局将高度平均分配给所有组件。 因此,使用3个组件,可以得到3行,每行占整个垂直布局高度的33% 您可以使用.setExpandRatio(…)
VerticalLayout
。
不设置高度-内部组件看起来很好:每个标签占用尽可能少的空间并保持在顶部:
但是,如果我使用filelayout.setHeight(“400px”)将布局高度设置为400px代码>-我的3个标签中的每一个开始占用33%的空间:
我只希望我的标签只占用所需的空间,我的垂直布局与我设置的一样长。请帮帮我。垂直布局将高度平均分配给所有组件。
因此,使用3个组件,可以得到3行,每行占整个垂直布局高度的33%
您可以使用.setExpandRatio(…)
要使所有标签
位于顶部,只需将“空”的标签
als最后一个元素添加到垂直布局
,并告诉垂直布局
使用最后一行的所有“溢出”高度
Label empty= new Label();
vl.addComponent(empty);
vl.setExpandRatio(empty, 1);
将其设置为1意味着它将占据溢流高度的1部分
还有一种捷径方法可以在一次调用中同时执行这两项操作:
vl.addComponentsAndExpand(empty);
这是您问题的答案,但您可能会提出以下问题:
当垂直布局的内容高于可用高度时,我们该怎么办?
但这是另一个问题,如果您希望有滚动条,面板可能是更好的容器。是否所有组件都保持相同的大小(即,您是否介意只扩展最后一个组件)?这是一个肮脏的解决方法。但它是有效的。非常感谢你。另外,它是“setExpandRatio”,而不是“setComponentExpandRatio”。一个小的改进(使用而不是上面的代码):Label empty=new Label();vl.addComponentAndExpand(空);