【问题标题】:ScrollPanel out of sync when DisclosurePanel + Virtual KeyboardDisclosurePanel + 虚拟键盘时 ScrollPanel 不同步
【发布时间】:2015-05-01 16:47:07
【问题描述】:

我无法在 (mgwt) ScrollPanels 和 (gwt) DisclosurePanels 上使用(例如 android)虚拟键盘找到解决方案。

在使用移动虚拟键盘向 DisclosurePanel 内的文本字段输入数据后(虚拟键盘消失了),我的应用程序中的 ScrollPanel 与页面不同步。我无法滚动到页面顶部,页面末尾有一个空白区域代表虚拟键盘的大小。因此,可以滚动到页面末尾之外,但不能滚动到顶部。

这些页面通常有多个披露面板。当输入输入时页面上的所有此类面板都打开时,不会发生不同步的情况。如果在弹出时取消键盘(即没有输入),也可以保持正确的滚动。

UI Binder sn-p:

    <mgwt:panel.scroll.ScrollPanel ui:field="ascroll">
        <mgwt:panel.flex.FlexPanel>
            <mgwt:header.HeaderPanel>
                <mgwt:header.HeaderTitle ui:field="atitle"/>
            </mgwt:header.HeaderPanel>
            <gwt:DisclosurePanel width="100%">
                <gwt:customHeader>
                    <mgwt:header.HeaderPanel
                        <mgwt:header.HeaderTitle ui:field="anothertitle"/>
                    </mgwt:header.HeaderPanel>
                </gwt:customHeader>
                <mgwt:panel.flex.FlexPanel>
                    <mgwt:form.Form>
                        <mgwt:form.FormEntry>
                            <mgwt:input.MTextBox ui:field="afield"/>
                        </mgwt:form.FormEntry>
                    </mgwt:form.Form>
                </mgwt:panel.flex.FlexPanel>
            </gwt:DisclosurePanel>
        </mgwt:panel.flex.FlexPanel>
    </mgwt:panel.scroll.ScrollPanel>

我在 ScrollPanel 上使用 refresh 来打开/关闭 DisclosurePanel。工作正常。我也尝试在字段的onChange/onFocus 事件中执行refresh,但无济于事。

ViewPort 设置为以下(也尝试/使用了默认getAppSetting()):

        ViewPort viewPort = new MGWTSettings.ViewPort();
    viewPort
        .setWidthToDeviceWidth()
        .setHeightToDeviceHeight()
        .setUserScaleAble(false)
        .setMinimumScale(1.0)
        .setMinimumScale(1.0)
        .setMaximumScale(1.0);

    MGWTSettings settings = new MGWTSettings();
    settings.setViewPort(viewPort);
    settings.setFullscreen(true);
    settings.setFixIOS71BodyBug(true);
    settings.setPreventScrolling(true);
    MGWT.applySettings(settings);

对我可以做些什么来确保滚动与页面大小同步有什么建议吗?

【问题讨论】:

    标签: javascript android gwt virtual-keyboard mgwt


    【解决方案1】:

    我最终屈服并用 GWT ScrollPanel 替换了 MGWT ScrollPanel。需要一些移动 CSS 修补,但工作正常。

    【讨论】:

      猜你喜欢
      • 2014-04-11
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 2015-01-02
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多