Vaadin-水平布局扩展比0导致0宽度

Vaadin-水平布局扩展比0导致0宽度,vaadin,vaadin8,Vaadin,Vaadin8,这是UI树及其大小设置: 水平布局(全尺寸) FormLayout(大小未定义,展开比:0) 字段1(大小未定义) 字段2(大小未定义) 字段3(大小未定义) 面板(全尺寸,展开比:1) 标签(宽度100%,高度未定义) 我想要什么: 为FormLayout提供所需的最小空间,其余空间应由面板占用 发生了什么: FormLayout的宽度为0(实际上不可见),面板占据整个空间 如果展开比均为1,则窗体布局和面板的宽度似乎完全相同 我做的不对吗?如何获得它,使FormLayout保

这是UI树及其大小设置:

水平布局(全尺寸)

  • FormLayout(大小未定义,展开比:0)

    • 字段1(大小未定义)
    • 字段2(大小未定义)
    • 字段3(大小未定义)
  • 面板(全尺寸,展开比:1)

    • 标签(宽度100%,高度未定义)

我想要什么:

为FormLayout提供所需的最小空间,其余空间应由面板占用


发生了什么:

FormLayout的宽度为0(实际上不可见),面板占据整个空间

如果展开比均为1,则窗体布局和面板的宽度似乎完全相同

我做的不对吗?如何获得它,使FormLayout保持其大小,并且只有面板将水平增长

编辑:

主视图类:

private HorizontalLayout layout;

private FormLayout formLayout;
private TextField title;
private Upload upload;
private ComboBox<String> charset;
private Button btnSubmit;

private TextViewer textViewer;



public TextUploadView() {
    createTitle();      
    createUpload();
    createBtnSubmit();
    createCharset();
    formLayout = new FormLayout(title, upload, charset, btnSubmit);

    textViewer = new TextViewer();

    layout = new HorizontalLayout(formLayout, textViewer);
    layout.setSizeFull();
    layout.setExpandRatio(formLayout, 0);
    layout.setExpandRatio(textViewer, 1);
}
我不认为标签上的css会造成任何问题,但它是这样的:

.mytheme .largeTextDisplay {
    white-space: pre-wrap;
    word-wrap: normal;
}

请发布您正在使用的代码。我会认为,如果您将HorizontalLayout设置为未定义的大小,并且没有使用任何扩展比率,它将看起来像您所期望的那样。@ChrisM确实,我也会这样期望,但我想他可能由于布局间距或其他原因出现了一些问题。但是,如果没有看到代码和解释为什么它不能按预期工作,很难猜测。谢谢!我从UI类中添加了相关代码。我尝试了不使用扩展比率的方法-结果是在面板和表单布局之间平均分配空间。如果窗口很小,表单布局就没有足够的空间。如果窗口很大,则会有未使用的空间,因为表单布局不需要那么多空间。在刚做的时候,您在初始“场景图”中描述的内容与预期一样有效:请发布您正在使用的代码。如果您将HorizontalLayout设置为size undefined,并且没有使用任何扩展比率,看起来你是这么想的。@ChrisM的确,我也会这么想,但我想他可能因为布局间距或其他原因出现了一些问题。但是,如果没有看到代码和解释为什么它不能按预期工作,很难猜测。谢谢!我从UI类中添加了相关代码。我尝试了不使用扩展比率的方法-结果是在面板和表单布局之间平均分配空间。如果窗口很小,表单布局就没有足够的空间。如果窗口很大,则会有未使用的空间,因为表单布局不需要那么多空间。在执行此操作时,您在初始“场景图”中描述的内容会按预期工作:
.mytheme .largeTextDisplay {
    white-space: pre-wrap;
    word-wrap: normal;
}