Skip to content

Commit 65b7737

Browse files
committed
修复FluCarousel设置autoPlay为false时手动翻页仍触发自动轮播翻页问题. fixed zhuzichu520#563
修复FluCarousel设置autoPlay为false时不能无限向左/右翻页的问题.
1 parent 7a6efa4 commit 65b7737

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

src/Qt5/imports/FluentUI/Controls/FluCarousel.qml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Item {
2424
}
2525
QtObject{
2626
id:d
27-
property bool flagXChanged: true
27+
property bool flagXChanged: false
2828
property bool isAnimEnable: control.autoPlay && list_view.count>3
2929
function setData(data){
3030
if(!data){
@@ -88,14 +88,17 @@ Item {
8888
}
8989
}
9090
onMovementEnded:{
91+
d.flagXChanged = false
92+
list_view.highlightMoveDuration = 0
9193
currentIndex = list_view.contentX/list_view.width
9294
if(currentIndex === 0){
9395
currentIndex = list_view.count-2
9496
}else if(currentIndex === list_view.count-1){
9597
currentIndex = 1
9698
}
97-
d.flagXChanged = false
98-
timer_run.restart()
99+
if(d.isAnimEnable){
100+
timer_run.restart()
101+
}
99102
}
100103
onMovementStarted: {
101104
d.flagXChanged = true
@@ -104,12 +107,12 @@ Item {
104107
onContentXChanged: {
105108
if(d.flagXChanged){
106109
var maxX = Math.min(list_view.width*(currentIndex+1),list_view.count*list_view.width)
107-
var minY = Math.max(0,(list_view.width*(currentIndex-1)))
110+
var minX = Math.max(0,(list_view.width*(currentIndex-1)))
108111
if(contentX>=maxX){
109112
contentX = maxX
110113
}
111-
if(contentX<=minY){
112-
contentX = minY
114+
if(contentX<=minX){
115+
contentX = minX
113116
}
114117
}
115118
}

src/Qt6/imports/FluentUI/Controls/FluCarousel.qml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Item {
2424
}
2525
QtObject{
2626
id:d
27-
property bool flagXChanged: true
27+
property bool flagXChanged: false
2828
property bool isAnimEnable: control.autoPlay && list_view.count>3
2929
function setData(data){
3030
if(!data){
@@ -88,14 +88,17 @@ Item {
8888
}
8989
}
9090
onMovementEnded:{
91+
d.flagXChanged = false
92+
list_view.highlightMoveDuration = 0
9193
currentIndex = list_view.contentX/list_view.width
9294
if(currentIndex === 0){
9395
currentIndex = list_view.count-2
9496
}else if(currentIndex === list_view.count-1){
9597
currentIndex = 1
9698
}
97-
d.flagXChanged = false
98-
timer_run.restart()
99+
if(d.isAnimEnable){
100+
timer_run.restart()
101+
}
99102
}
100103
onMovementStarted: {
101104
d.flagXChanged = true
@@ -104,12 +107,12 @@ Item {
104107
onContentXChanged: {
105108
if(d.flagXChanged){
106109
var maxX = Math.min(list_view.width*(currentIndex+1),list_view.count*list_view.width)
107-
var minY = Math.max(0,(list_view.width*(currentIndex-1)))
110+
var minX = Math.max(0,(list_view.width*(currentIndex-1)))
108111
if(contentX>=maxX){
109112
contentX = maxX
110113
}
111-
if(contentX<=minY){
112-
contentX = minY
114+
if(contentX<=minX){
115+
contentX = minX
113116
}
114117
}
115118
}

0 commit comments

Comments
 (0)