【问题标题】:Scrollable Layout in Vaadin FlowVaadin Flow 中的可滚动布局
【发布时间】:2019-05-19 20:33:41
【问题描述】:

在 Vaadin Flow 中,不存在本质上是可滚动布局的组件。 在 Vaadin 8 中,这是由 Panel 完成的。

有没有办法在 Vaadin Flow 中实现可滚动组件?

【问题讨论】:

    标签: scrollview vaadin vaadin-flow


    【解决方案1】:

    编辑:我现在发布了一个附加组件here,它提供类VerticalScrollLayout,以及类HorizontalScrollLayout强>。如果有改进建议,请随时与我联系或在此处发表评论。


    是的,这是可能的,尽管没有自动执行此操作的现有组件。
    可行的方法是在另一个组件中放置一个 VerticalLayout(对于 vertical 滚动条),并将该 VerticalLayout 的 display 属性从 flex 设置为 block。 (感谢 Diego Sanz Villafruela 在vaadin forum

    我已经创建了自己的 VerticalScrollLayout 类来为您完成所有工作,因此在视图中使用它就像使用简单的 VerticalLayout 一样简单

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

    【讨论】:

    • 请注意,当将 flex 容器与 overflow: auto 结合使用时,您可能会遇到一些不可预知的行为。更安全的方法是包装 flex 容器并让包装元素处理滚动。
    • 是的,我对 flex 知之甚少,不知道你的意思是什么,但我想这就是为什么这在新发布的 14.1.0 中不再有效的原因
    • @Jouni 我相信还记得看到计划在 14.2 或 14.3 中发布的官方可滚动布局?在那之前,你能解释一下你的意思吗,或者给我一个链接,我可以在那里阅读?将不胜感激
    • 我说它在 14.1.0 中不再起作用,但事实并非如此。我有 a strange issue 破坏了我的可滚动布局,但它不是由 14.1.0 引起的。
    猜你喜欢
    • 1970-01-01
    • 2019-12-23
    • 2019-06-10
    • 2015-03-21
    • 1970-01-01
    • 2014-05-22
    • 2016-12-02
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多