是否可以在qml中制作循环滑动项目?

时间:2018-04-15 23:28:35

标签: qt qml

我在qml中使用swipeview。我可以将物品从头到尾刷回来。是否有可能从最终到第一次立即滑动?我在docs中找不到任何信息。

2 个答案:

答案 0 :(得分:1)

您可以使用PathView执行此操作。 Qt快速控制2的Tumbler也可以wrap,因为它在内部使用PathView

答案 1 :(得分:0)

您可以使用PathView。像这样的一些代码:

import QtQuick 2.0

Rectangle {
    width: 200
    height: 200

    ListModel {
        id: model
        ListElement {
            color: "red"
        }
        ListElement {
            color: "green"
        }
        ListElement {
            color: "blue"
        }
    }

    Component {
        id: delegate
        Rectangle {
            id: wrapper
            width: view.width
            height: view.height
            color: model.color

            Text {
                anchors.centerIn: parent
                font.pointSize: 26
                font.bold: true
                color: "white"
                text: index
            }
        }
    }

    PathView {
        id: view
        anchors.fill: parent
        snapMode: PathView.SnapOneItem
        highlightRangeMode: PathView.StrictlyEnforceRange
        currentIndex: -1
        model: model
        delegate: delegate
        path: Path {
            startX: -view.width / 2  // let the first item in left
            startY: view.height / 2  // item's vertical center is the same as line's

            PathLine {
                relativeX: view.width * view.model.count  // all items in lines
                relativeY: 0
            }
        }
    }
}