You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vaadin Flow中如何在FormLayout中跳过单元格添加空白占位?

Vaadin Flow FormLayout 空单元格无占位组件实现方案

适用场景

2列2行表单布局,第一行第二列留空,无需添加空Span等无实际意义的占位组件。


推荐实现方式(Vaadin 23.1+版本)

Vaadin 23.1及以上版本提供了addToRowAPI,可直接指定组件插入的行、列位置,中间空白单元格无需添加任何占位组件:

// 初始化FormLayout并固定为2列布局
FormLayout formLayout = new FormLayout();
formLayout.setResponsiveSteps(new ResponsiveStep("0", 2));

// 直接指定组件的行列位置,行列索引从0开始计数
formLayout.addToRow(0, 0, new TextField("第一行第一列"));
formLayout.addToRow(1, 0, new TextField("第二行第一列"));
formLayout.addToRow(1, 1, new TextField("第二行第二列"));

低版本兼容实现方式(Vaadin 14+通用)

FormLayout底层基于CSS Grid实现,可以直接给第二行首组件设置网格起始行属性,让它跳过第一行剩余的空单元格:

FormLayout formLayout = new FormLayout();
formLayout.setResponsiveSteps(new ResponsiveStep("0", 2));

TextField firstField = new TextField("第一行第一列");
TextField secondField = new TextField("第二行第一列");
TextField thirdField = new TextField("第二行第二列");

// 强制第二个组件从第二行开始渲染,自动跳过第一行第二列的位置
secondField.getElement().getStyle().set("grid-row-start", "2");

formLayout.add(firstField, secondField, thirdField);

内容的提问来源于stack exchange,提问作者Stephane Grenier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:39:02