首页 > 解决方案 > Vaadin 8 组件中的值发生变化时窗口回滚到开头

问题描述

在我的应用程序中,我需要一个包含大量内容的弹出窗口,这些内容不完全适合浏览器窗口并且有一个滚动条。我已经尝试使用 Browser Window Opener 显示一个弹出窗口,但遇到了以下问题(在此处输入链接描述)。按照评论中建议的建议,我将 Browser Window Opener 更改为 Window in modal mode。

生成的主视图:

在此处输入图像描述

和模态视图:

在此处输入图像描述

模式窗口包含 200 个文本字段。乍一看,一切看起来都不错,但如果我向下滚动窗口并尝试输入数据,例如在字段 22 中,则滚轮将展开到窗口的开头:

在此处输入图像描述

添加窗口的代码:

button.addClickListener(e -> { TestForm subForm = new TestForm();

        Window subWindow = new Window("460006801");
        subWindow.setContent(subForm);
        subWindow.center();
        subWindow.setModal(true);

        UI.getCurrent().addWindow(subWindow);
    });

测试表格:

public class TestForm extends FormLayout implements Serializable{
    public Button save = new Button("Save");

    public TestForm() {
        for(int i = 0; i < 200; i++) {
            TextField textField = new TextField("field " + i);
            addComponent(textField);
        }
    }

    public void saveConfigs() {
        System.out.print("Save ");
    }
}

我真正需要的当然是在更改文本框中的值时,页面上的焦点保持在同一个位置,而不是滚动到开头。

标签: windowvaadinvaadin8modal-window

解决方案


该问题与该问题的链接所提出的问题相同

解决方法是将“高度”参数设置为 100%


推荐阅读