我们可以使用PathView获得SwipeView吗?

时间:2018-05-31 10:41:27

标签: qt qml qqmlapplicationengine qqmllistproperty

在QML中,滑动视图不是双向的。所以我需要滑动视图 代码示例对我非常有益。 我需要在我的视图中只保留3个项目。在一次只有项目应该是可见的&在以任一方式滑动视图时,左侧或右侧元素应位于中心。

1 个答案:

答案 0 :(得分:0)

此代码解决了一半的问题这就是我发布答案的原因

import QtQuick 2.0

Item {
    property alias model: view.model
    property alias delegate: view.delegate
    property alias currentIndex: view.currentIndex
    property real itemHeight: 60

    clip: true

    PathView {
        id: view
        anchors.fill: parent
        snapMode: PathView.NoSnap
        pathItemCount: height/itemHeight
        preferredHighlightBegin: 0.5
        preferredHighlightEnd: 0.5
        dragMargin: view.width/5
        path: Path {
            startY: view.width/4; startX:-itemHeight/2 -50
            PathLine { y: view.width/4; x: (view.pathItemCount*itemHeight + 3*itemHeight) }
        }
    }
}

这是我的项目:

Item{
    id:widgetMain
    width :480
    height : 240
    property int  delegateHeight: widgetMain.height
    property int delegateWidth : widgetMain.width
    Spinner {
        id: spinner
        width: parent.width;
        height: parent.height;
        focus: true
        model: ["qrc:/Tile1.qml",
            "qrc:/Tile2.qml"
            ,"qrc:/Tile3.qml"]
        itemHeight: 150

        delegate: Loader {
            width: delegateWidth
            height: delegateHeight
            source: modelData
        }
    }
}

现在,如果我朝任何方向滑动,它在视图中仅显示1个图块。 &安培;当我的拖动到达一半时,瓷砖将移除&转移到最后。

在这里,我想显示一个瓷砖正在滑动&第二块瓷砖来自后面(就像一个滑动视图)。

现在可以帮助我吗?

相关问题