Vaadin 22 流。
我在 flexlayout 中使用网格。
我的问题是我需要网格根据其内容增长,直到它填满可用空间,然后它应该获取滚动条。
理想情况下,网格的最小尺寸应为一行,以使其明显是空的。
本质上我想显示
FlexLayout
Grid - grows as content grows until page fills then shows scroll bars
New button
Spacer - flex grow 1
随着网格的填充,它应该会展开,直到“新建”按钮到达页面底部,然后网格应该显示滚动条。
Spacer 填充 New Button 下方的浏览器,并随着 Grid 的增长而缩小。
我试过使用 flex-basis 内容,但网格缩小到没有。
这是代码:
private void initLayout()
{
setFlexDirection(FlexDirection.COLUMN);
setJustifyContentMode(JustifyContentMode.START);
setAlignItems(Alignment.START);
setId("searchLayout");
var entityGrid = new Grid<E>();
add(entityGrid);
final var newButton = new Button("New");
newButton.setWidth("100%");
add(newButton);
var spacer = new Spacer("100%");
add(spacer);
setFlexGrow(1, spacer);
}
这是html:
<div id="searchLayout" style="flex-direction: column; display: flex; width: 100%; justify-content: flex-start; align-items: flex-start; height: 100%; flex-grow: 1;">
<vaadin-grid suppress-template-warning="" style="touch-action: none;">
<vaadin-grid-column suppress-template-warning="">
<template class="header">Country</template></vaadin-grid-column>
<vaadin-grid-cell-content slot="vaadin-grid-cell-content-0">Country</vaadin-grid-cell-content>
<vaadin-grid-cell-content slot="vaadin-grid-cell-content-1"></vaadin-grid-cell-content><vaadin-grid-cell-content slot="vaadin-grid-cell-content-2"></vaadin-grid-cell-content><vaadin-grid-cell-content slot="vaadin-grid-cell-content-3">Australia</vaadin-grid-cell-content>
<vaadin-grid-cell-content slot="vaadin-grid-cell-content-4">Japan</vaadin-grid-cell-content>
</vaadin-grid>
<vaadin-button theme="primary" style="width: 100%;" tabindex="0" role="button">New
</vaadin-button>
<span id="Spacer" style="width: 100%; flex-grow: 1;"> </span></div>
这是裁剪区域的样子。新建按钮应该直接位于朝鲜下方。
帮助!