在图片Test
中,Test 1
和Test 2
在ListView
中。在这种情况下,Test
元素将突出显示。如何修改 View 行为,以确保当前(突出显示)的项目始终位于列表的中间?下图表示了我要实现的目标:
最佳答案
您只需要highlightRangeMode
和preferredHighlightBegin
和preferredHighlightEnd
即可。从文档中:
这是水平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
}
}