如何在滚动过程中管理项目在ListView中的位置

时间:2019-02-25 12:11:08

标签: qt qml

我有列表视图。当我滚动项目时,顶部元素可以停在任何位置,并且可以看到一半的高度。 enter image description here 但我需要在滚动停止后才能看到顶部元素的完整高度。enter image description here

import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.12

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Scroll")

    ColumnLayout {
        anchors.fill: parent

        RowLayout {
            id: buttonsRow
            Button {
                text: "Open dump file"
            }
            Button {
                text: "Copy raw data to clipboard"
            }
        }

        ListView {
            id: listView
            flickableDirection: Flickable.VerticalFlick
            boundsBehavior: Flickable.StopAtBounds
            model: 100
            clip: true
            delegate: ItemDelegate {
                text: modelData

                Rectangle
                {
                    width: parent.width   - 5
                    height: parent.height - 5

                    color: "green"
                }
            }

            Layout.fillWidth: true
            Layout.fillHeight: true

            ScrollBar.vertical: ScrollBar {}
        }
    }
}

1 个答案:

答案 0 :(得分:2)

使用snapMode属性:

ListView {
   snapMode: ListView.SnapToItem
   // ...
}