Можем ли мы иметь SwipeView с помощью PathView? - PullRequest
0 голосов
/ 31 мая 2018

В QML Swipe View не является двунаправленным. Так что мне нужно представление Swipe. Пример кода будет очень полезным для меня.Мне нужно сохранить только 3 элемента в моем представлении, и одновременно должен быть виден только один элемент, а при перемещении вида в любом случае левый или правый элемент должен быть в центре.

1 Ответ

0 голосов
/ 01 июня 2018

Этот код решает половину проблемы. Вот почему я написал как ответ

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 плитка в представлении.& Когда мое перетаскивание достигает половины пути, тогда плитка удаляется и сдвигается до последнего.

Здесь я хочу показать, что одна плитка движется пальцем, а вторая - сзади (точно так же, как вид смахивания).

Теперь вы можете мне помочь, пожалуйста?

...