2016-12-28 4 views
0

RadListView에서 특정 y 위치로 스크롤 할 수 있습니까?RadListView - 특정 Y 위치로 스크롤

문제는 RadListView 페이지에서 다른 페이지로 이동 한 다음 다시 돌아 오는 경우입니다. 즉, 목록보기의 맨 위로 초기화됩니다. 다른 페이지로 이동하기 전에 사용자가 있었던 것과 동일한 y 위치를 선호합니다.

나는 scroll-to-item 방법이 있다고 생각한다. 그러나 반드시 같은 y 위치는 아니다.

답변

0

당신은 관찰 뷰 모델을 사용하여 인덱스를 캐시하고 필요시 이 목록 이벤트를로드에 (이 경우 전달할 수는 - 사용자가 목록 페이지로 다시 돌아갑니다하고 목록을로드 할 때입니다)

예 : 타이프 라이터

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 속성은 iOS 용으로 RadListView에서만 구현됩니다. http://docs.telerik.com/devtools/nativescript-ui/Controls/NativeScript/ListView/How-To/scroll-to-index#changing-the -position-of-the-scrolled-to-item-ios-only .. 그 외에도 모든보기에서 작동하는 getLocationRelativeTo()라는 꽤 좋은 메서드가 있습니다. –