2016-09-28 1 views
0

Ich versuche, vaadin Ansicht hinzufügen horizontale Bildlaufleiste, aber es hat kein Ergebnis. Kannst du mir bitte Helfen. Hier ist voll Code meiner Ansicht:Horizontale Bildlaufleiste in Vaadin wird nicht angezeigt

public class TestView extends CssLayout implements View { 
/** 
* 
*/ 
private static final long serialVersionUID = 1L; 

protected void init() { 
    Layout content = new VerticalLayout(); 
    content.setSizeFull(); 
    addComponent(content); 

    // add content to make the scrollbar appear 
    HorizontalLayout rightLayout = new HorizontalLayout(); 
    for (int i = 0; i < 100; i++) { 
     rightLayout.addComponent(new Button("Button " + i)); 
    } 

    Panel rightPanel = new Panel(rightLayout); 
    rightPanel.setSizeFull(); 

    content.addComponent(rightPanel); 
} 

public TestView() { 
    super(); 
    init(); 
} 

@Override 
public void enter(ViewChangeEvent event) { 
    // TODO Auto-generated method stub 

} 

}

+0

Überprüfen Sie bitte die Größe des äußeren CssLayout. Seine Größe darf nicht undefiniert sein. Es ist wichtig, dass Komponenten mit relativer Größe (z. B. 100%) in Layouts mit fester oder relativer, aber nicht undefinierter Größe sind. Verwenden Sie im Panel eine feste oder undefinierte Größe, so dass der Inhalt größer als das Panel sein kann und die Bildlaufleiste erscheint. –

+0

Danke für die Antwort. Es funktioniert, aber für das Erscheinen der Bildlaufleiste (nur horizontal) muss ich Seite aktualisieren. Gibt es eine Möglichkeit, diese Bildlaufleiste dynamisch hinzuzufügen? Ich habe einen solchen Teil hinzugefügt: setWidth (UI.getCurrent(). GetPage(). GetBrowserWindowWidth(), Unit.PIXELS); \t \t setHeight (UI.getCurrent(). GetPage(). GetBrowserWindowHeight() - 38, Unit.PIXELS); – user6676850

Antwort

0

Ich habe Hörer hinzufügen und es funktionieren:

Page.getCurrent().addBrowserWindowResizeListener(event -> { 
     setWidth(UI.getCurrent().getPage().getBrowserWindowWidth(), Unit.PIXELS); 
     setHeight(UI.getCurrent().getPage().getBrowserWindowHeight(), Unit.PIXELS); 
    }); 
1

Ich glaube, Sie wahrscheinlich Vertical haben Erweiterte sollte eher als CSSLayout, also etwas wie dieses:

public class TestView extends VerticalLayout implements View { 
/** 
* 
*/ 
private static final long serialVersionUID = 1L; 

protected void init() { 
    setSizeFull(); 

    // add content to make the scrollbar appear 
    HorizontalLayout rightLayout = new HorizontalLayout(); 
    for (int i = 0; i < 100; i++) { 
     rightLayout.addComponent(new Button("Button " + i)); 
    } 

    Panel rightPanel = new Panel(rightLayout); 
    rightPanel.setSizeFull(); 

    addComponent(rightPanel); 
} 

public TestView() { 
    super(); 
    init(); 
} 

@Override 
public void enter(ViewChangeEvent event) { 
    // TODO Auto-generated method stub 

} 
} 
Verwandte Themen