2016-09-27 3 views
0

특정 크기의 vaadin 창이 있습니다. 브라우저 윈도우가 작 으면 일부 필드가 보이지 않습니다 (아마도 윈도우 크기 때문에). 이 경우에는 스크롤링이 가능해야합니다. 그래서 창문의 내용을 패널에 추가하려고 시도하지만 작동하지 않습니다. 제발 생각해보십시오.Vaadin 윈도우 스크롤

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

답변

0

내 마음에 온 솔루션은 내용이 (인해 브라우저 창 크기에) 충분한 공간이있는 경우 스크롤 막대가 표시됩니다 있도록, 최대 높이 및 모달 윈도우의 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; 
} 
내 응용 프로그램에서 작동

코드 샘플