2016-09-27 11 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%の高さの両方を設定することです。逆に、ブラウザのウィンドウが十分大きければ、max-heightが有効になり、モーダルウィンドウは中央に配置され、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; 
} 
関連する問題