Можем ли мы получить SwipeView с помощью PathView?
В QML Swipe View не является двунаправленным. Так что мне нужно представление Swipe. Пример кода будет очень полезным для меня. Мне нужно сохранить только 3 элемента в моем представлении, и одновременно должен быть виден только один элемент, а при смещении вида в любом случае левый или правый элемент должен быть в центре.
1 ответ
Этот код решает половину проблемы, поэтому я написал как ответ
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 плитку в представлении. & Когда мое перетаскивание достигает половины пути, тайл удаляется и сдвигается до последнего.
Здесь я хочу показать, что одна плитка смахивает, а вторая плитка идет сзади (так же, как вид смахивания).
Теперь вы можете мне помочь, пожалуйста?