我怎样才能设置 vaadin 布局的宽度并且仍然让内部组件根据需要占用尽可能多的 space?
How can I set width of vaadin layout and still have inner components take as much space as they need?
所以我有一个对象VerticalLayout
。
没有设置高度 - 内部组件看起来很好:每个标签尽可能少 space 并保持在顶部:
但是,如果我使用 filesLayout.setHeight("400px");
将布局高度设置为 400px - 我的 3 个标签中的每一个都开始占用 space 的 33% :
我只希望我的标签只占用所需数量的 space,而我的 VerticalLayout 的长度与我设置的一样长。请帮帮我。
VerticalLayout
在所有组件之间平均分配高度。
因此,对于 3 个组件,您将得到 3 行,每行占整个 VerticalLayout
高度的 33%。
您可以使用 .setExpandRatio(...)
来控制展开比率
要让所有 Labels
都在顶部,您只需添加一个 "empty" Label
als 最后一个元素到 VerticalLayout
,并告诉 VerticalLayout
使用所有 "overflow" 高度到最后一行。
Label empty= new Label();
vl.addComponent(empty);
vl.setExpandRatio(empty, 1);
设置为1表示占溢出高度的1部分
还有一种快捷方式可以一次调用完成:
vl.addComponentsAndExpand(empty);
这是您问题的答案,但您可能会想到这个问题:
VerticalLayout的内容高于可用高度怎么办?
但这是另一个问题,如果您希望有滚动条,也许 Panel 会是更好的容器。
所以我有一个对象VerticalLayout
。
没有设置高度 - 内部组件看起来很好:每个标签尽可能少 space 并保持在顶部:
但是,如果我使用 filesLayout.setHeight("400px");
将布局高度设置为 400px - 我的 3 个标签中的每一个都开始占用 space 的 33% :
我只希望我的标签只占用所需数量的 space,而我的 VerticalLayout 的长度与我设置的一样长。请帮帮我。
VerticalLayout
在所有组件之间平均分配高度。
因此,对于 3 个组件,您将得到 3 行,每行占整个 VerticalLayout
高度的 33%。
您可以使用 .setExpandRatio(...)
要让所有 Labels
都在顶部,您只需添加一个 "empty" Label
als 最后一个元素到 VerticalLayout
,并告诉 VerticalLayout
使用所有 "overflow" 高度到最后一行。
Label empty= new Label();
vl.addComponent(empty);
vl.setExpandRatio(empty, 1);
设置为1表示占溢出高度的1部分
还有一种快捷方式可以一次调用完成:
vl.addComponentsAndExpand(empty);
这是您问题的答案,但您可能会想到这个问题:
VerticalLayout的内容高于可用高度怎么办? 但这是另一个问题,如果您希望有滚动条,也许 Panel 会是更好的容器。