From 65b7737454dec996c08a5d2e95cbd88cb4e0c817 Mon Sep 17 00:00:00 2001 From: Polaris-Night <158275221@qq.com> Date: Mon, 17 Feb 2025 23:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DFluCarousel=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?autoPlay=E4=B8=BAfalse=E6=97=B6=E6=89=8B=E5=8A=A8=E7=BF=BB?= =?UTF-8?q?=E9=A1=B5=E4=BB=8D=E8=A7=A6=E5=8F=91=E8=87=AA=E5=8A=A8=E8=BD=AE?= =?UTF-8?q?=E6=92=AD=E7=BF=BB=E9=A1=B5=E9=97=AE=E9=A2=98.=20fixed=20#563?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复FluCarousel设置autoPlay为false时不能无限向左/右翻页的问题. --- src/Qt5/imports/FluentUI/Controls/FluCarousel.qml | 15 +++++++++------ src/Qt6/imports/FluentUI/Controls/FluCarousel.qml | 15 +++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml b/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml index 4ee914f0..bc26df83 100644 --- a/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml +++ b/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml @@ -24,7 +24,7 @@ Item { } QtObject{ id:d - property bool flagXChanged: true + property bool flagXChanged: false property bool isAnimEnable: control.autoPlay && list_view.count>3 function setData(data){ if(!data){ @@ -88,14 +88,17 @@ Item { } } onMovementEnded:{ + d.flagXChanged = false + list_view.highlightMoveDuration = 0 currentIndex = list_view.contentX/list_view.width if(currentIndex === 0){ currentIndex = list_view.count-2 }else if(currentIndex === list_view.count-1){ currentIndex = 1 } - d.flagXChanged = false - timer_run.restart() + if(d.isAnimEnable){ + timer_run.restart() + } } onMovementStarted: { d.flagXChanged = true @@ -104,12 +107,12 @@ Item { onContentXChanged: { if(d.flagXChanged){ var maxX = Math.min(list_view.width*(currentIndex+1),list_view.count*list_view.width) - var minY = Math.max(0,(list_view.width*(currentIndex-1))) + var minX = Math.max(0,(list_view.width*(currentIndex-1))) if(contentX>=maxX){ contentX = maxX } - if(contentX<=minY){ - contentX = minY + if(contentX<=minX){ + contentX = minX } } } diff --git a/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml b/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml index 844b8d9d..cb364bb8 100644 --- a/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml +++ b/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml @@ -24,7 +24,7 @@ Item { } QtObject{ id:d - property bool flagXChanged: true + property bool flagXChanged: false property bool isAnimEnable: control.autoPlay && list_view.count>3 function setData(data){ if(!data){ @@ -88,14 +88,17 @@ Item { } } onMovementEnded:{ + d.flagXChanged = false + list_view.highlightMoveDuration = 0 currentIndex = list_view.contentX/list_view.width if(currentIndex === 0){ currentIndex = list_view.count-2 }else if(currentIndex === list_view.count-1){ currentIndex = 1 } - d.flagXChanged = false - timer_run.restart() + if(d.isAnimEnable){ + timer_run.restart() + } } onMovementStarted: { d.flagXChanged = true @@ -104,12 +107,12 @@ Item { onContentXChanged: { if(d.flagXChanged){ var maxX = Math.min(list_view.width*(currentIndex+1),list_view.count*list_view.width) - var minY = Math.max(0,(list_view.width*(currentIndex-1))) + var minX = Math.max(0,(list_view.width*(currentIndex-1))) if(contentX>=maxX){ contentX = maxX } - if(contentX<=minY){ - contentX = minY + if(contentX<=minX){ + contentX = minX } } }