代码之家  ›  专栏  ›  技术社区  ›  kscherrer

Vaadin流中的可滚动布局

  •  2
  • kscherrer  · 技术社区  · 6 年前

    在Vaadin流中,不存在本质上是可滚动布局的组件。 在瓦丹8,这是由 Panel .

    有没有一种方法来实现Vaadin流中的可滚动组件?

    1 回复  |  直到 6 年前
        1
  •  3
  •   kscherrer    6 年前

    编辑: 我现在发布了一个附加组件 here 它提供了类 VerticalScrollLayout 以及班级 HorizontalScrollLayout . 如果有改进的建议,请随时联系我或在这里发表评论。


    是的,这是可能的,尽管没有现有的组件可以自动执行。
    方法是放置一个垂直的箭头(用于 垂直的 滚动条),并设置 display 垂直布局的属性 flex block . (归功于迭戈·桑兹·维拉弗鲁埃拉 vaadin forum )

    我自己做的 垂直滚动布局 为你做这一切的班级,所以 在视图中使用它和使用简单的垂直布局一样简单

    public class VerticalScrollLayout extends VerticalLayout {
        private VerticalLayout content;
    
        public VerticalScrollLayout(){
            preparePanel();
        }
    
        public VerticalScrollLayout(Component... children){
            preparePanel();
            this.add(children);
        }
    
        private void preparePanel() {
            setWidth("100%");
            setHeight("100%");
            getStyle().set("overflow", "auto");
    
            content = new VerticalLayout();
            content.getStyle().set("display", "block");
            content.setWidth("100%");
            content.setPadding(false);
            super.add(content);
        }
    
        public VerticalLayout getContent(){
            return content;
        }
    
        @Override
        public void add(Component... components){
            content.add(components);
        }
    
        @Override
        public void remove(Component... components){
            content.remove(components);
        }
    
        @Override
        public void removeAll(){
            content.removeAll();
        }
    
        @Override
        public void addComponentAsFirst(Component component) {
            content.addComponentAtIndex(0, component);
        }
    }