为什么在 Vaadin 中使用 FormLayout 而不是 VerticalLayout?

Why use FormLayout instead of a VerticalLayout in Vaadin?

对于 Formlayout,您的所有字幕都位于字段的左侧。如果您只有一列字段的表单,这很好,但是一旦您有更复杂的表单,例如您想要并排放置在同一行的名字和姓氏,您就不能使用 FormLayout,至少如果您希望字段的标题保持一致,无论是在字段的左侧还是上方。是的,您可以将它们包装在 HorizontalLayout 中并在 FormLayout 中设置 InputPrompt,但这并不总是适用于更复杂的表单,因为有时您仍然需要标题。 VerticalLayout 至少你所有的字幕都是一致的。

综上所述,使用 FormLayout 相对于 VerticalLayout 有什么优势?我希望所有的标题都保持一致,无论是顶部还是左侧,如果我只使用一列字段,那么我就不走运了。我相信验证也可以在 FormLayout 之外进行,所以我不确定这是一个仅限于 FormLayout.

的专业人士

如果我只使用 VerticalLayout 那么我会得到字段上方的所有标题,这对于所有字段都是一致的,即使我必须进行任何高级布局并组合许多不同类型的布局,例如同一行的名字和姓氏,或者我希望城市和邮政编码字段大小不同的地址行等。

FormLayout 肯定比 VerticalLayout 有优势,但我看不出...

真的没有太多内容。 FormLayout 已被弃用 com.vaadin.ui.Form。我们可以推测 class 可能是为 com.vaadin.ui.Form.

提供默认设置而创建的

JavaDoc 中也说明了差异:

  • 字幕在左边
  • 验证显示在标题之间 和组件
  • 默认间距和边距设置的差异

您还可以查看两个 classes 的服务器端代码。它看起来非常相似,因此两种布局的逻辑方面完全相同。

资料来源:the JavaDoc和我自己的经验。