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

在UI5应用程序中保留最后滚动位置的页面

  •  1
  • THI  · 技术社区  · 6 年前

    在我的UI5应用程序中,如果我滚动到一页的底部,然后移动到另一页,然后再次返回到上一页,则视图位于该页的底部。也就是说,该页的最后一个滚动位置被保留,我必须再次向上滚动才能看到顶部。我想每次访问时都从顶部显示页面。 有什么建议吗?

    <Page  enableScrolling="true" id="page" class="sapUiContentPadding" showHeader="false">
        <content>
            <VBox height="2000px">
                <core:Fragment fragmentName="ABC" type="XML"/>
                <core:Fragment fragmentName="PQR" type="XML"/>
            </VBox>
        </content>
    </Page>
    

    控制器.js

    return BaseController.extend("....somePage", {
            onInit: function() {
            .....   
    
            },
            _onObjectMatched: function(oEvent) {
                this.getView().byId("page").scrollTo(0); //even this is not working
                window.scrollTo(0,0);  //did not work
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Matthijs Mennens    6 年前

    你试过了吗 scrollTo scrollToElement 方法 sap.m.Page ? 如果是,请确保设置 enableScrolling 属性为true。我在下面添加了一个小示例。

    查看

        <Page id="page" title="ScrollPage" enableScrolling="true">
                <content>
                    // your content
                </content>
            </Page>
    

    控制器

    这将触发滚动功能每次您访问该页。

        onInit: function() {
            sap.ui.core.UIComponent.getRouterFor(this).attachRouteMatched(this.onScroll, this);
        },
    
        onScroll: function() {
            this.byId("page").scrollTo(0);
        },