Qt技术交流QtQuick/Qml系列教程

Qml上拉下拉刷新

2018-11-29  本文已影响0人  zhengtianzuo

当ListView拉动到一定位置的时候 就需要出现Loading
然后加载数据进行刷新

所以我们通过states来进行拉动位置的判断

    ListView {
        id: listView
        width: parent.width
        height: parent.height
        model: listModel
        delegate: Rectangle{
            height: 24
            width: parent.width
            border.color: "#AAAAAA"
            border.width: 1
            Text {
                font.family: "microsoft yahei"
                font.pixelSize: 15
                anchors.centerIn: parent
                text: name + ": " + number
            }
        }
        states: [
            State {
                id: downRefresh
                name: "downRefresh"; when: (listView.contentHeight > 0) && (listView.contentY > (listView.contentHeight - root.height + nPullHeight))
                StateChangeScript {
                    name: "funDownRefresh"
                    script: funDownRefresh()
                }
            },
            State {
                id: upRefresh
                name: "upRefresh"; when: (listView.contentY < -nPullHeight)
                StateChangeScript {
                    name: "funUpRefresh"
                    script: funUpRefresh()
                }
            }
        ]
    }
show.gif

需要完整代码请访问QtQuickExamples

上一篇下一篇

猜你喜欢

热点阅读