我有一个特定大小的vaadin窗口当浏览器窗口很小时,某些字段不可见(可能是因为窗口的大小)。我们需要在这些情况下启用滚动。所以我尝试在面板中添加窗口的内容,但它不起作用。请问您有什么想法吗?
setModal(true);
setResizable(false);
setClosable(false);
Panel mainPanel = new Panel();
VerticalLayout content = new VerticalLayout();
content.addComponent.......
content.setSizeFull();
mainPanel.setContent(content);
答案 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);