Vaadin窗口滚动

时间:2016-09-27 15:18:53

标签: vaadin7

我有一个特定大小的vaadin窗口当浏览器窗口很小时,某些字段不可见(可能是因为窗口的大小)。我们需要在这些情况下启用滚动。所以我尝试在面板中添加窗口的内容,但它不起作用。请问您有什么想法吗?

    setModal(true);
    setResizable(false);
    setClosable(false);
    Panel mainPanel = new Panel();
    VerticalLayout content = new VerticalLayout();
   content.addComponent.......
    content.setSizeFull();
    mainPanel.setContent(content);

2 个答案:

答案 0 :(得分:0)

我想到的解决方案是设置模态窗口的最大高度和100%高度,这样如果内容空间不足(由于浏览器窗口大小),将出现滚动条。相反,当浏览器窗口足够大时,最大高度发挥作用,模态窗口居中并以ccs max-height预定义。

在我的应用中运行的代码示例:

windowOpenButton.addClickListener(event -> {
    Window window = new Window();
    window.setWidth("100px");
    window.setHeight("100%");
    window.setModal(true);
    window.setResizable(false);
    window.setClosable(false);
    Panel panel = new Panel();
    Button close = new Button("close");
    close.addClickListener(event1 -> window.close());
    VerticalLayout content = new VerticalLayout(new Button(), new Button(), new Button(), new Button(), new Button(), new Button(), new Button(), new Button(), new Button(), new Button(), close);
    content.setSizeFull();
    panel.setContent(content);
    window.setContent(panel);
    window.setStyleName("max_height");
    panel.setSizeUndefined();
    UI.getCurrent().addWindow(window);
});

的CSS:

.max_height {
    max-height: 350px;
}

答案 1 :(得分:0)

相反,您只需在窗口中使用 setSizeFull() 即可

因此您的代码将类似于:

setModal(true);
setResizable(false);
setClosable(false);
setSizeFull()
Panel mainPanel = new Panel();
VerticalLayout content = new VerticalLayout();
content.addComponent.......
content.setSizeFull();
mainPanel.setContent(content);