如何在到达BB10应用程序列表末尾之前向ListView添加更多项目?

时间:2013-08-13 18:31:39

标签: qt blackberry blackberry-10 blackberry-cascades

我有一个以50个项目开始的列表视图,我希望在用户滚动列表时添加更多项目,但是在它们到达列表末尾之前。我一直在使用atEnd属性知道我什么时候在列表末尾,并在那时添加更多项目,但是当我50%时,我宁愿开始添加新项目 - 75通过列表的百分比,以便用户不太可能等待更多数据

1 个答案:

答案 0 :(得分: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);
        }
    }
]}