编程语言
首页 > 编程语言> > java-有没有一种方法可以使Vaadin中的标题显示在左侧而不使用FormLayout?

java-有没有一种方法可以使Vaadin中的标题显示在左侧而不使用FormLayout?

作者:互联网

有没有办法在不使用FormLayout的情况下使Vaadin中的标题显示在左侧?我加粗了它,因为我试图避免这是第一个答案.我知道FormLayout提供了此功能,但是在某些情况下,我需要使用GridLayout之类的东西才能具有两列数据(例如,名字和姓氏,开始日期和结束日期,等等).

解决方法:

没有简单的方法可以做到,因为每种布局都会为其内部的组件生成适当的空间.您可以使用简单的CSS规则轻松更改由布局生成的“框”内标题和相应组件的顺序,但很难动态确定框的大小-这就是布局的作用.我在下图中演示了它:
enter image description here

如您所见,我能够使用以下CSS交换字幕的顺序及其文本字段:

#your-id .v-caption {
  position: relative !important;
  top: 10px !important;
}

#your-id .your-component {
  top: 0px !important;
  left: 0px !important;
  position: absolute !important;
}

和代码

    GridLayout l = new GridLayout(2,2);
    l.addStyleName("your-id");
    for(int i=0; i<4; i++){
        TextField qq = new TextField();
        qq.setCaption("DuDuDu");
        qq.addStyleName("your-component");
        l.addComponent(qq);
    }

(我已在Firefox CSS编辑器中应用了这些规则,因此仅更改了一个插槽)
这是有可能的,因为我不必更改v-gridlayout-slot的大小.大小是由Vaadin动态生成的,您不能告诉Vaadin“为我的文本字段和标题生成我的广告位,而我想在左侧/右侧添加标题”.

标签:vaadin7,vaadin,java
来源: https://codeday.me/bug/20191120/2040307.html