首页 文章

RadListView - 滚动到特定的y位置

提问于
浏览
0

在RadListView中,是否可以滚动到特定的y位置 .

问题是如果我从RadListView页面导航到另一个页面然后返回 - 它初始化到listview的顶部 . 我希望在导航到另一个页面之前,用户所处的位置相同 .

我认为有一个滚动到项目的方法 - 但这不一定是相同的y位置 .

1 回答

  • 0

    您可以使用可观察的ViewModel缓存索引并在需要时传递它(在这种情况下,在列表的 loaded 事件中 - 即用户将返回列表页面并且列表将加载时)

    例如打字稿

    page.ts

    export function onListLoaded(args: RadListwModule.ListViewEventData) {
        list = <RadListwModule.RadListView>args.object;
    
        if (list.items) {
            list.scrollToIndex(roversViewModel.get("cachedIndex"));
        }
    
        list.refresh();
    }
    
    export function onItemTap(args: RadListwModule.ListViewEventData) {
        var tappedItemIndex = args.itemIndex;
    
        // "cache" the index of our tapped  item
        roversViewModel.set("cachedIndex", tappedItemIndex);
    
        // navigate to  details page or do what you want to do on itemTap
        frame.topmost().navigate(navEntry);
    }
    

    page.xml

    <lv:RadListView items="{{ dataItems }}" loaded="onListLoaded" itemTap="onItemTap">
    

    第一次加载列表时也要给你的cachedIndex initial value of 0 .

    基于this POC app的示例 . 请注意,与滚动到完全y位置不完全相同,但您可以修改逻辑并进一步滚动到精确位置,同时获取单元格相对位置偏移 .

相关问题