我正在使用 Qt 5.10,并且我正在使用 SwipeView。我想更改滑动动画速度,但阅读文档后我不知道如何更改。有什么解决方法可以做到这一点吗?
我尝试这样做的原因是因为,不知道为什么,滑动过渡动画非常慢(见下文) 这是我的代码:
ColumnLayout{
anchors.fill: parent
Item{
id:modulecontainer
Layout.fillHeight: true
Layout.fillWidth: true
SwipeView{
id: moduleview
anchors.fill: parent
interactive: loggedUser.role==User.AdminRole
clip: true
orientation: Qt.Horizontal
Item {
id: firstPage
Loader {
anchors.fill: parent
id:moduleLoader
}
}
Item {
id: secondPage
Rectangle{
anchors.fill: parent
color: "red"
}
}
}
}
}
我解决了这个问题,只是从 SwipeView 的源代码中获取了
contentItem
实现的代码:
....
SwipeView{
id: moduleview
....
contentItem: ListView {
model: moduleview.contentModel
interactive: moduleview.interactive
currentIndex: moduleview.currentIndex
spacing: moduleview.spacing
orientation: moduleview.orientation
snapMode: ListView.SnapOneItem
boundsBehavior: Flickable.StopAtBounds
highlightRangeMode: ListView.StrictlyEnforceRange
preferredHighlightBegin: 0
preferredHighlightEnd: 0
highlightMoveDuration: 250
// min:10
maximumFlickVelocity: 4 * (moduleview.orientation ===
Qt.Horizontal ? width : height)
}
}
....
不知道为什么这可以解决问题,但我分享只是为了防止其他人面临同样的问题。如果需要更高的动画速度,只需将 MaximumFlickVelocity 因子从 4 替换为更大的值
对于本线程的后续读者,在 Qt5.14 中,您可以使用最初建议的修复来设置此内容:
Component.onCompleted: contentItem.highlightMoveDuration = 10000;