Qt for Android中ListView上拉加载的实现
来源:互联网 发布:诲女知之乎读音 编辑:程序博客网 时间:2024/05/22 13:26
QML中使用ListView分页加载数据
在使用QtQuick开发移动端应用时,总会使用列表类的组件,而qt给我们提供了很多的选择,但是他只能满足普通的需求,也没有android那样,有那么多的开源库可供使用或者学习,在我的应用中经常会遇到大量的数据需要列表去显示,开始初学QML时,对QT的各个模块不太熟悉,于是每次进入页面就把大量的数据一次加载出来造成页面很卡,于是就想着使用分页来处理大量的数据,这里写了一个简单的例子来解释上拉加载更多数据的原理,希望对初学者有所帮助。
例子很简单,上代码。
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
property int count: 10//每次加载的数据量
property bool needLoadMore:false//是否要加载的标示
//数据模型
ListModel{
id:theModel
ListElement{
number:0
}
ListElement{
number:1
}
ListElement{
number:2
}
ListElement{
number:3
}
ListElement{
number:4
}
ListElement{
number:5
}
ListElement{
number:6
}
ListElement{
number:7
}
ListElement{
number:8
}
ListElement{
number:9
}
ListElement{
number:10
}
}
ListView{
id:lv;
anchors.fill: parent
anchors.margins: 20
clip:true
model:theModel
spacing: 15
delegate: numberDelegate
onMovementEnded: {
//在这里调用数据加载的方法
if(needLoadMore){
console.log("loadMore")
loadMore();
needLoadMore=false;
}
}
onContentYChanged: {
//主要逻辑就在这块,很简单
if(contentHeight>height&&contentY-originY>contentHeight-height){
var dy=(contentY-originY)-(contentHeight-height);
console.log(dy)
if(dy>40){
needLoadMore=true;
}
}
}
// 动画
Behavior on contentY{
NumberAnimation { duration: 200; easing.type: Easing.InOutQuad }
}
}
Component{
id:numberDelegate
Rectangle{
id:wrapper
width:640
height:80
color:"#dedede"
Text{
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: 20
text:number
}
}
}
function addNumber(){
console.log(count)
count+=10;
for(var i=count-10;i<count;i++){
theModel.append({"number":i+1})
}
}
function loadMore(){
addNumber();
}
其实核心思想就是判断当前ListView在Y轴上的滑动距离,当滑动到底部时,就去加载数据。
0 0
- Qt for Android中ListView上拉加载的实现
- Android scrollview中嵌套listview实现listview的下拉刷新上拉加载更多
- android-----ListView上拉加载更多实现
- Android ListView下拉刷新上拉加载更多的实现
- Android实现ListView的下拉刷新、上拉加载更多
- Android : 自定义上拉加载的ListView
- listview实现上拉加载
- Android之实现ListView的“下拉刷新”、“上拉加载”、“自动加载”功能(一)
- Android之实现ListView的“下拉刷新”、“上拉加载”、“自动加载”功能(二)
- Android中ListView下拉刷新上拉加载更多效果实现
- Android开发--上拉加载更多ListView实现
- Android 自定义ListView 实现下拉刷新 上拉加载功能
- Android ListView 实现下拉刷新上拉加载
- Android中ListView上拉加载(分页)功能
- ListView的上拉加载以及圆形图片的实现
- android 简单的上拉加载实现
- Android学习笔记:ListView上拉加载,下拉刷新的实现
- Android学习笔记:实现上拉加载更多数据的ListView
- Flume日志收集
- Material Design中全新的动画
- HTML5表单控件与表单属性
- jsTree学习(二)——简单demo
- 关于获取键盘通知信息的处理
- Qt for Android中ListView上拉加载的实现
- 第一个小程序
- 去掉AndroidStudio中的运行小闪电
- jedis工具类
- 正则表达式总结
- 基于Linux的机房自动化IT运维监控
- Struts2标签 %{ } %{# }详解
- kafka 0.9.0.1 集群安装, 主题消息测试 (一)
- 在CSS中使用expression