あなたは、観察のViewModelを使用してインデックスをキャッシュし、に、この場合には(必要なときにそれを渡すことができますが、あなたのリストのためのイベントをロード)
活字体
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位置にスクロールするのとまったく同じではありませんが、論理を変更して、セルを相対位置オフセットで取得して正確な位置にさらにスクロールすることができます。
このソリューションをお寄せいただきありがとうございます。私は、scrollToIndex()メソッドがアイテムを見えるようにすることを発見しました - 画面の上部、中央、または下部にある可能性があります。それでは、どのようにしてセルの相対位置オフセットを取得しますか? scrollToPosition()メソッドがあるようです。おそらくそれが解決策ですか? – dashman
この時点でscrollPositionプロパティは、RadListViewのiOSでのみ実装されています。http://docs.telerik.com/devtools/nativescript-ui/Controls/NativeScript/ListView/How-To/scroll-to-index#changing-the -position-of-the-scroll-to-item-ios-only ..とは別に、getLocationRelativeTo()と呼ばれるかなり良いメソッドがあり、それはどのビューでも動作します –