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

标签 qt blackberry blackberry-10 blackberry-cascades

我有一个 ListView ,从 50 个项目开始,我想在用户滚动列表时添加更多项目,但在到达列表末尾之前。我一直在使用atEnd属性来了解我何时位于列表末尾,并在此时添加更多项目,但我宁愿在列表完成 50% - 75% 时开始添加新项目,以便用户不太可能等待更多数据

最佳答案

您可以使用onFirstVisibleItemChanged发出信号以了解您在 ListView 中的位置。使用第一个可见项和数据模型的当前大小来获取列表中的当前位置。如果该位置在您设置的边界内(在我的示例代码中为 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);
        }
    }
]}

关于qt - 在 BB10 应用程序上,如何在到达列表末尾之前向 ListView 添加更多项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18216552/

相关文章:

qt - 在 Ubuntu 18.04.1 LTS 中安装 Qt 4.8.7

iphone - 好的移动应用程序可以帮助开发吗?

windows-phone-7 - 您是否需要许可证才能开发 Windows 手机和黑莓应用程序?

blackberry-10 - 如何在黑莓级联中获取json数据

qt - qml中垂直 ListView 内的水平 ListView

c++ - 如何处理使用 .ui 文件生成的 .h 文件?

c++ - Qt:为什么在 QWidget 上声明 event() protected

java - BlackBerry Field 类扩展不会绘制

regex - 在 Blackberry 10 中使用 QML 在文本字段中验证电子邮件 ID 格式

c++ - C++ 的 RSA 加密 (BB10)