From 6b4ca8e6fbd7d3d1fb2b9ebb188b811ecfd3bb21 Mon Sep 17 00:00:00 2001 From: Polaris-Night <67040421+Polaris-Night@users.noreply.github.com> Date: Tue, 18 Feb 2025 14:18:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5Qt6=E9=83=A8=E5=88=86FluCarou?= =?UTF-8?q?sel=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Qt6/imports/FluentUI/Controls/FluCarousel.qml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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 } } }