2016-10-30 51 views
0

我有一个RadListView的页面 - 向下滚动,交互等 - 当我导航到另一个页面,然后做topframe.back() - 原始页面的ListView失去它最后一个状态 - 整个页面被重建。页面重新导航回到页面

无论如何,它不要重新初始化页面...我知道在原生的Android默认行为是有一个活动的嵌套页面 - 所以可以总是回到最后的状态。

+0

dashman嗨,这个问题已经被报告在这个问题上的GitHub的https://github.com/NativeScript/ NativeScript/issues/2852。该修复程序将在即将发布的NativeScript版本中提供。 –

回答

1

事实上,RadListView在这个时刻并不记得它的开箱即用状态。我所做的解决此问题的方法是“缓存”scrollIndex并将其传递给我的RadListView的加载的事件。

例如

列表page.xml

<lv:RadListView id="rad-list" items="{{ dataItems }}" 
       loaded="onListLoaded" itemTap="onItemTap"> 

列表page.ts

export function onListLoaded(args: RadListwModule.ListViewEventData) { 
    list = <RadListwModule.RadListView>args.object; 

    if (list.items) { 
     list.scrollToIndex(roversViewModel.get("cachedIndex")); 
    } 
} 

// onItemTap is the event where I update the cached index 
export function onItemTap(args:RadListwModule.ListViewEventData) { 
    var tappedItemIndex = args.itemIndex; 
    roversViewModel.set("cachedIndex", tappedItemIndex); 
} 
+0

谢谢......但上次我使用scrollToIndex()所做的只是确保项目可见 - 可以位于顶部,中间或底部。因此,如果您将该项目留在灰色区域 - 该位置不会完全恢复正确?我想知道是否知道滚动索引和项目高度 - 你有y偏移量,你是否可以调用父滚动视图并滚动到该确切的y位置。 – dashman

+0

在我的情况下,当使用scrollToIndex(0)项目在页面的顶部呈现完美对齐(对于RadListView使用交错布局,对于项目模板使用图像和标签的网格) –