在图片Test中,Test 1Test 2ListView中。在这种情况下,Test元素将突出显示。如何修改 View 行为,以确保当前(突出显示)的项目始终位于列表的中间?下图表示了我要实现的目标:

最佳答案

您只需要highlightRangeModepreferredHighlightBeginpreferredHighlightEnd即可。从文档中:



这是水平ListView的完整示例,当前项目位于中心。

import QtQuick 2.4
import QtQuick.Window 2.2

Window {
    width: 300
    height: 150
    visible: true

    ListView {
        anchors.fill: parent
        spacing: 5

        model: 20

        delegate:
            Rectangle {
            width: 30
            color: ListView.view.currentIndex === index ? "red" : "steelblue"

            height: ListView.view.height
            Text {
                anchors.centerIn: parent
                text: index
                font.pixelSize: 20
            }
        }

        orientation: Qt.Horizontal
        preferredHighlightBegin: 150 - 15
        preferredHighlightEnd: 150 + 15
        highlightRangeMode: ListView.StrictlyEnforceRange
    }
}

10-07 19:48
查看更多