2016-10-30 4 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의 격자를 사용하여 레이아웃을 만들고 이미지 템플릿과 항목 템플릿의 레이블을 사용) –

관련 문제