나는 50 개의 항목으로 시작하는 listview를 가지고 있는데, 사용자가 목록을 스크롤 할 때 목록의 끝에 도달하기 전에 더 추가하려고합니다. 나는 atEnd 속성을 사용하여 목록 끝에있을 때를 알았고 그 시점에 항목을 더 추가했지만 50 %에서 75 %가되면 새 항목을 추가하기 시작했습니다. 목록을 통해 사용자가 더 많은 데이터를 기다릴 가능성이 줄어 듭니다.어떻게 BB10 앱에서 목록의 끝에 도달하기 전에 ListView에 항목을 더 추가 할 수 있습니까?
6
A
답변
7
onFirstVisibleItemChanged 신호를 사용하여 목록보기의 현재 상태를 확인할 수 있습니다. firstvisibleitem과 데이터 모델의 현재 크기를 사용하여 목록에서 현재 위치를 가져옵니다. 해당 위치가 설정 한 경계 (예제 코드에서 50 % 및 75 %) 내에 있으면 코드를 실행하여 데이터 모델에 항목을 추가하십시오.
정확한 숫자를 설정하지 마십시오. 신호가 목록의 50 %를 정확하게 포착하지 못할 수 있으며, 목록의 끝에 도달 한 경우에도 계속해서 오류를 감지해야합니다 사용자가 설정 한 범위를지나갑니다.
ListView {
dataModel: listDataModel
objectName: "listView"
attachedObjects: [
ListScrollStateHandler {
property int position
id: scrollStateHandler
onScrollingChanged: {
if (atEnd) {
//code to run if you hit the end of the list
}
}
onFirstVisibleItemChanged: {
if (position < firstVisibleItem) {
console.log("Scrolling Down")
var size = listDataModel.size();
var percent = firstVisibleItem/size * 100;
console.log("Percent: " + percent + "%");
if (50 < percent < 75) {
//do stuff
}
} else if (position > firstVisibleItem) {
console.log("Scrolling Up");
}
position = parseInt(firstVisibleItem);
}
}
]}
감사합니다. 나는 나 자신에 의해 이것을 결코 생각하지 못했다. – krilovich