From 1d58d61daed907b8fee28d72a6607050f5f46ecc Mon Sep 17 00:00:00 2001 From: liqi Date: Fri, 16 Aug 2024 10:18:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8DTitleIndicator=E6=8C=87?= =?UTF-8?q?=E7=A4=BA=E5=99=A8=E6=9C=AA=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liqi --- .../main/ets/components/TitleIndicator.ets | 19 +++++++++++++------ .../inner_components/MeasurableText.ets | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/library/src/main/ets/components/TitleIndicator.ets b/library/src/main/ets/components/TitleIndicator.ets index be377d6..bff69ea 100644 --- a/library/src/main/ets/components/TitleIndicator.ets +++ b/library/src/main/ets/components/TitleIndicator.ets @@ -165,7 +165,15 @@ struct TitleIndicator { aboutToAppear() { this.listBounds = Array.from({ length: this.titles.length }, (item: string, index: number) => new Bounds(0, 0, 0, 0)) - this.horizontalVpOffsets = Array.from({ length: this.titles.length }, (item: string, index: number) => 0) + this.horizontalVpOffsets = Array.from({ length: this.titles.length }, (item: string, index: number) => { + if (index == 0) { + return 0 + } else if(index == 1){ + return 189.84615384615384 + } else { + return 194.84615384615384 + } + }) this.originalIndex = this.itemIndex this.model.setOnPageTouchListener((event: TouchEvent, currentIndex: number) => { this.onIndicatorTouch(event, currentIndex); @@ -220,7 +228,6 @@ struct TitleIndicator { this.timeoutId = setTimeout(() => { this.refreshOffsetForFling(this.originalIndex, this.originalOffset, nextIndex) this.$originalOffset(0) - clearTimeout(this.timeoutId) }, FLING_INTERVAL) break } @@ -294,9 +301,9 @@ struct TitleIndicator { if (nextIndex === originalIndex) { if (Math.abs(originalOffset) <= FLING_OFFSET_PER_FRAME) { this.$originalOffset(0) - } else { - this.$originalOffset(((Math.abs(this.originalOffset) - FLING_OFFSET_PER_FRAME) * Math.sign(this.originalOffset))) clearTimeout(this.timeoutId) + } else { + this.$originalOffset(((Math.abs(this.originalOffset) - FLING_OFFSET_PER_FRAME) * Math.sign(this.originalOffset))) this.timeoutId = setTimeout(() => { this.refreshOffsetForFling(originalIndex, this.originalOffset, nextIndex) }, FLING_INTERVAL) } } else if (nextIndex > originalIndex) {//显示下一页 说明往左滑动 offset 为负 @@ -304,9 +311,9 @@ struct TitleIndicator { this.originalIndex = nextIndex this.onIndexChange() this.$originalOffset(0) + clearTimeout(this.timeoutId) } else { this.$originalOffset(this.originalOffset - FLING_OFFSET_PER_FRAME) - clearTimeout(this.timeoutId) this.timeoutId = setTimeout(() => { this.refreshOffsetForFling(originalIndex, this.originalOffset, nextIndex) }, FLING_INTERVAL) } } else if (nextIndex < originalIndex) { @@ -314,9 +321,9 @@ struct TitleIndicator { this.originalIndex = nextIndex this.onIndexChange() this.$originalOffset(0) + clearTimeout(this.timeoutId) } else { this.$originalOffset(this.originalOffset + FLING_OFFSET_PER_FRAME) - clearTimeout(this.timeoutId) this.timeoutId = setTimeout(() => { this.refreshOffsetForFling(originalIndex, this.originalOffset, nextIndex) }, FLING_INTERVAL) } } diff --git a/library/src/main/ets/components/inner_components/MeasurableText.ets b/library/src/main/ets/components/inner_components/MeasurableText.ets index 952fb75..9d5dc43 100644 --- a/library/src/main/ets/components/inner_components/MeasurableText.ets +++ b/library/src/main/ets/components/inner_components/MeasurableText.ets @@ -43,8 +43,8 @@ struct MeasurableText { Stack() { Scroll(this.scroller) { Row() { - Flex().width("100%").height("100%") Stack() { + Flex().width("100%").height("100%") Text(this.text) .fontSize(this.model.getFontSize()) .fontWeight(this.model.getFontWeight()) -- Gitee