在Horizo​​ntalSplitPanel中的Vaadin No Horizo​​ntal Scrollbar

时间:2016-07-19 18:11:11

标签: layout scrollbar vaadin panel horizontal-scrolling

我尝试了不同的东西但是我没有让它成为一个水平的Scrollbar,我调整浏览器的大小。

使用Vaadin我有一个Horizo​​ntalSplitPanel。 在此面板中,我左侧有一个菜单,右侧有内容。 对于内容我有MainLayout的VerticalLayout。这包含一些Horizental布局。

在我的Servlet类中:

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

VaadinDocumentationFürLevelPanelSPlit说:

如果需要水平滚动条,您可以将内容放在面板中,该面板可以在两个方向上都有滚动条。

所以,我想将我的Mainlayout放入Panal并将Panel添加到Horizo​​ntalPanelSPlit的我的内容部分(右侧),但是: 我只能将Horizo​​ntalLayouts添加到Panel。

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

不起作用。

任何人都可以帮助我吗?我发现7岁的Vaadim Board的答案不起作用:(

1 个答案:

答案 0 :(得分:3)

摘自Vaadin Panel documentation

  

滚动小组

     

内容通常,如果面板中的大小未定义   一个方向,因为它默认垂直,它将适合的大小   内容随着内容的增长而增长。但是,如果它有固定的   或百分比大小及其内容变得太大而不适合   内容区域,将显示特定方向的滚动条。   面板中的滚动条由浏览器本地处理   overflow:CSS中的auto属性。

遵循上述指导原则,您可以执行以下操作:

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));
    }
}

导致垂直滚动

Vertical scroll

同样,对于水平滚动(只需将VerticalLayout rightLayout = new VerticalLayout();替换为HorizontalLayout

Horizontal scroll