2016-12-28 15 views
0

RadListViewでは、特定のy位置にスクロールすることは可能ですか?RadListView - 特定のy位置にスクロール

問題は、RadListViewページから別のページに移動して戻ってくるときです。リストビューの先頭に初期化されます。ユーザーが別のページに移動する前と同じ位置にすることをお勧めします。

スクロールアイテム間の方法があると思いますが、必ずしも同じy位置である必要はありません。ユーザーがリストページに戻りますときで、リストがロードされます -

答えて

0

あなたは、観察の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位置にスクロールするのとまったく同じではありませんが、論理を変更して、セルを相対位置オフセットで取得して正確な位置にさらにスクロールすることができます。

+0

このソリューションをお寄せいただきありがとうございます。私は、scrollToIndex()メソッドがアイテムを見えるようにすることを発見しました - 画面の上部、中央、または下部にある可能性があります。それでは、どのようにしてセルの相対位置オフセットを取得しますか? scrollToPosition()メソッドがあるようです。おそらくそれが解決策ですか? – dashman

+0

この時点で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()と呼ばれるかなり良いメソッドがあり、それはどのビューでも動作します –

関連する問題