kri*_*ich 6 qt blackberry blackberry-10 blackberry-cascades
我有一个listview,以50个项目开始,我想在用户滚动列表时添加更多内容,但是在它们到达列表末尾之前.我一直在使用atEnd属性知道我什么时候在列表末尾,并在那时添加更多项目,但我宁愿在我50%时开始添加新项目 - 75%的方式通过列表,以便用户不太可能等待更多数据
小智 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);
}
}
]}
Run Code Online (Sandbox Code Playgroud)