2016-07-19 26 views
0

Ich habe verschiedene Dinge ausprobiert, aber ich habe es nicht geschafft, eine horizontale Scrollbar zu haben, wehen ich Größe meines Browsers.Vaadin Keine horizontale Scrollbar in HorizontalSplitPanel

Mit Vaadin habe ich ein HorizontalSplitPanel. In diesem Panel habe ich ein Menü auf der linken Seite und den Inhalt auf der rechten Seite. Für den Inhalt habe ich eine VerticalLayout für MainLayout. Dies enthält einige Horizental Layouts.

In meiner Servletklasse:

private HorizontalSplitPanel split = new HorizontalSplitPanel(); 
split.setSizeFull(); 
... 
private VerticalLayout mainLayout = new VerticalLayout(); 
private HorizontalLayout xyz = new VerticalLayout(); 
mainLayout.addComponent(xyz); 
split.addComponent(mainlayout); 

Vaadin Dokumentation für HorizontalPanelSPlit sagt:

Wenn horizontale Bildlaufleiste erforderlich ist, können Sie den Inhalt in einem Gremium setzen könnte, die Bildlaufleisten in beide haben können Richtungen.

So wollte ich mein Mainlayout in einem Panal setzen und auf Panel zu meinem Inhalt Part (rechte Seite) der HorizontalPanelSPlit hinzufügen, ABER: Ich kann nur hinzufügen HorizontalLayouts zu einem Gremium.

Panel panel = new Panal(); 
panel.addComponent(mainLayout); 

funktioniert nicht.

Kann mir jemand helfen? Ich fand Antworten in Vaadim Vorstand, 7 Jahre alt, wird nicht funktionieren :(

Antwort

3

Auszug aus dem Vaadin Panel documentation:

Scrolling das Panel

Inhalt Normalerweise, wenn eine Platte nicht definiert Größe hat in eine Richtung, wie es standardmäßig vertikal hat, wird es die Größe von den Inhalt passen und mit dem Inhalt wächst.Wenn es jedoch eine feste oder prozentuelle Größe hat und sein Inhalt wird zu groß, um in die passen conten Im Bereich erscheint eine Bildlaufleiste für die jeweilige Richtung. Bildlaufleisten in einem Panel werden nativ vom Browser mit der Überlauf: Auto-Eigenschaft in CSS behandelt.

die oben genannte Richtlinien folgend, können Sie etwas tun könnten:

public class MyUi extends UI { 
    private final static Logger logger = 
    @Override 
    protected void init(VaadinRequest request) { 
     Layout content = new VerticalLayout(); 
     content.setSizeFull(); 
     setContent(content); 

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

     Panel rightPanel = new Panel(rightLayout); 
     rightPanel.setSizeFull(); // <= this is important 

     MenuBar menuBar = new MenuBar(); 
     menuBar.addItem("Some item", null); 
     content.addComponent(new HorizontalSplitPanel(new VerticalLayout(menuBar), rightPanel)); 
    } 
} 

in einem vertikalen Scroll-Resultierende

Vertical scroll

Auch für horizontalen Scroll (ersetzen Sie einfach VerticalLayout rightLayout = new VerticalLayout(); mit einem HorizontalLayout)

Horizontal scroll