QML - 垂直滑动视图?

Posted

技术标签:

【中文标题】QML - 垂直滑动视图?【英文标题】:QML - Vertical Swipe View? 【发布时间】:2016-09-15 09:23:43 【问题描述】:

是否可以在 QML 中使用 SwipeView 进行垂直滑动而不是水平滑动?

我希望 SwipeView 的页面内容垂直浮动,因此用户必须上下滚动才能在页面之间导航。

如果这是不可能的,我会怎么做?

更新此功能已添加到 QT,如下所示:

http://doc-snapshots.qt.io/qt5-dev/qml-qtquick-controls2-swipeview.html#orientation-prop

【问题讨论】:

【参考方案1】:

经过更多研究后,我想出了一个可以正常工作的解决方案,使用 ListView/ListModel/ListDelegate - 将其发布在此处以供其他想要实现相同目标的人使用。

QML:

ListView 
    snapMode: ListView.SnapOneItem
    highlightRangeMode: ListView.StrictlyEnforceRange

    anchors 
        top: parent.top
        bottom: parent.bottom
        left: parent.left
        right: parent.right
    

    model: ListModel 
        id: listModel

        ListElement 
            text: "1"
        
        ListElement 
            text: "2"
        
        ListElement 
            text: "3"
        
    

    delegate: Page 
        width:  ListView.view.width
        height: ListView.view.height

        Text 
            anchors.centerIn: parent
            text: model.text
        
    

【讨论】:

我还是提出了建议:bugreports.qt.io/browse/QTBUG-56031 SwipeView::orientation 已在 Qt 5.9 的 Qt Quick Controls 2.2 中添加,将于 2017 年春季晚些时候发布。

以上是关于QML - 垂直滑动视图?的主要内容,如果未能解决你的问题,请参考以下文章

qml中垂直列表视图内的水平列表视图

向下滑动关闭垂直滚动视图

如何实现android的垂直滑动视图UI

在视图寻呼机 2 中禁用垂直滚动

AngularJS-Ionic:创建一个可滑动的水平视图,它将更新垂直视图

来自模型的 QML 树视图