내 마음에 온 솔루션은 내용이 (인해 브라우저 창 크기에) 충분한 공간이있는 경우 스크롤 막대가 표시됩니다 있도록, 최대 높이 및 모달 윈도우의 100 % 높이를 모두 설정하는 것입니다 . 반대로, 브라우저 창이 충분히 크면 최대 높이가 적용되고 모달 창은 가운데에 놓이며 ccs 최대 높이로 미리 정의됩니다.
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;
}
내 응용 프로그램에서 작동
코드 샘플