Merge pull request #588 from Polaris-Night/main

修复FluCarousel手动翻页的问题
This commit is contained in:
zhuzichu 2025-02-21 11:23:30 +08:00 committed by GitHub
commit db0588edcd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 28 additions and 26 deletions

View File

@ -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,15 +88,18 @@ 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
if(d.isAnimEnable){
timer_run.restart()
}
}
onMovementStarted: {
d.flagXChanged = true
timer_run.stop()
@ -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
}
}
}

View File

@ -14,13 +14,6 @@ ProgressBar{
id:d
property real _radius: strokeWidth/2
}
onIndeterminateChanged:{
if(!indeterminate){
animator_x.duration = 0
rect_progress.x = 0
animator_x.duration = control.duration
}
}
background: Rectangle {
implicitWidth: 150
implicitHeight: control.strokeWidth
@ -45,6 +38,11 @@ ProgressBar{
id: animator_x
running: control.indeterminate && control.visible
loops: Animation.Infinite
onRunningChanged: {
if(!running){
rect_progress.x = 0
}
}
PropertyAnimation {
from: -rect_progress.width
to: control.width + rect_progress.width

View File

@ -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,15 +88,18 @@ 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
if(d.isAnimEnable){
timer_run.restart()
}
}
onMovementStarted: {
d.flagXChanged = true
timer_run.stop()
@ -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
}
}
}

View File

@ -15,13 +15,6 @@ ProgressBar{
id:d
property real _radius: strokeWidth/2
}
onIndeterminateChanged:{
if(!indeterminate){
animator_x.duration = 0
rect_progress.x = 0
animator_x.duration = control.duration
}
}
background: Rectangle {
implicitWidth: 150
implicitHeight: control.strokeWidth
@ -46,6 +39,11 @@ ProgressBar{
id: animator_x
running: control.indeterminate && control.visible
loops: Animation.Infinite
onRunningChanged: {
if(!running){
rect_progress.x = 0
}
}
PropertyAnimation {
from: -rect_progress.width
to: control.width + rect_progress.width