代码之家  ›  专栏  ›  技术社区  ›  Egor Vasilyev

Vaadin 8当组件中的值更改时,窗口将回滚到开头

  •  0
  • Egor Vasilyev  · 技术社区  · 6 年前

    在我的应用程序中,我需要一个包含大量内容的弹出窗口,这些内容不完全适合浏览器窗口,并且有一个滚动条。 我已经尝试使用浏览器窗口开启器显示弹出窗口,但遇到了以下问题( enter link description here ). 按照评论中的建议,我将浏览器窗口开启器更改为模式窗口。

    由此产生的主要观点是:

    enter image description here

    和模态视图:

    enter image description here

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

    enter image description here

    添加窗口的代码:

    按钮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 ");
        }
    }
    

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

    0 回复  |  直到 6 年前
        1
  •  0
  •   Egor Vasilyev    6 年前

    这个问题与链接提出的问题相同 the problem

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