【问题标题】:Vaadin - maximize changeable container widthVaadin - 最大化可变容器宽度
【发布时间】:2016-10-15 10:42:36
【问题描述】:

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

提前致谢!

主界面类:

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();
}

【问题讨论】:

  • 在您的init 方法中,您是否尝试过container.setSizeFull()
  • 嗯,它有所帮助,但 leftContent 扩大到屏幕宽度的 50%。我试过设置container.setExpandRadio(...),但它不是永久的解决方案,因为当窗口变小时,leftContent 也会缩小。 @Morfic 你有什么想法吗?
  • 好吧,如果您可以提供sscce 并提供一些屏幕截图来解释您希望发生的事情以及当前的问题,我们一定会看一看。就目前而言,仅从描述中很难弄清楚
  • 你试过leftContent.setWidth("100px"); container.setExpandRatio(leftContent, 0f); container.setExpandRatio(mainContent, 1f);吗?如果有,问题出在哪里?
  • @A.Meier 工作就像一个魅力,谢谢!尽管如此,我必须说 vaadin 的官方指南应该包含有关这些基本行为的更多信息......

标签: java jakarta-ee vaadin vaadin7


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-15
    • 2021-05-15
    • 1970-01-01
    • 2017-12-09
    • 2018-06-30
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    相关资源
    最近更新 更多