属性:
snapMode 此属性确定视图滚动在拖动或轻拂之后的解决方式
NoSnap:列表滚动停止时可以停在任意位置,即便第一项显示不全
SnapToItem:当放开鼠标时,移动距离超过半个Item时,自动滑动到下一个Item,否则自动滑动回当前Item
SnapOneItem:和SnapToItem类似,区别是,SnapToItem判断条件是半个Item距离,而SnapOneItem判断距离比较小,其本意是当计算机认为使用者期望显示下一项时滑动到下一项(或者上一项)。SnapToItem的特点是当两个Item间距离越大,滚动到下一项需要拖动的距离越大。
测试代码如下,各位可以切换模式感受下
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
ListView{
id:listView
anchors.fill: parent
model: 20
snapMode: ListView.NoSnap
//snapMode: ListView.SnapToItem
//snapMode: ListView.SnapOneItem
delegate: Rectangle{
width: listView.width
height: listView.height
color: index%2 ? "yellow":"green"
Label{
id:txt
anchors.centerIn: parent
font.pointSize: 50
text: index
}
}
}
}