我正在使用Qt 5.10而我正在使用SwipeView。我想更改滑动动画速度,但在阅读文档后我看不清楚如何。是否有一些解决方法可以做到这一点?
答案 0 :(得分:1)
我试图这样做的原因是因为,不知道为什么,滑动过渡动画非常慢(见下文) 这是我的代码:
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替换为更大的值