下面代码中的“ leftContent”容器具有固定宽度(100px),一切正常。问题是:如何将mainContent的宽度设置为最大? “最大”是指填充浏览器的所有可用宽度。现在,我在按钮旁边显示了滚动条,这不是我期望的。我也不想为此“ mainContent”元素设置固定的像素宽度。

提前致谢!

主要的UI类:

protected void init(VaadinRequest vaadinRequest) {
    VerticalLayout leftContent = new VerticalLayout();
    [...]
    VerticalLayout mainContent = new VerticalLayout();
    mainContent.setSizeFull();
    mainContent.setMargin(false);

    HorizontalLayout container = new HorizontalLayout();
    container.addComponents(leftContent, mainContent);
    setContent(container);

    Navigator navigator = new Navigator(UI.getCurrent(), mainContent);
    [...]
}


MainView类:

public class MainView extends Panel implements View {

@Override
public void enter(ViewChangeEvent event) {
    setSizeUndefined();
    VerticalLayout verticalLayout = new VerticalLayout();
    verticalLayout.setSizeUndefined();
    for(int i=0;i< 30;i++) {
        verticalLayout.addComponent(new Button("text"));
    }
    setContent(verticalLayout);
    setSizeFull();
}

最佳答案

为了清楚起见,这是评论的答案。以下代码为主要内容提供了最大宽度。

leftContent.setWidth("100px");
container.setExpandRatio(leftContent, 0f);
container.setExpandRatio(mainContent, 1f);

07-25 21:17