From 6cb52a1dfc9d805195ba5fab160dc23bd3c9ad1a Mon Sep 17 00:00:00 2001 From: hzt Date: Fri, 16 May 2025 15:54:08 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/ForEachListPage.ets | 5 ++++- entry/src/main/ets/pages/LazyForEachListPage.ets | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/entry/src/main/ets/pages/ForEachListPage.ets b/entry/src/main/ets/pages/ForEachListPage.ets index c4bc300..3ca74ee 100644 --- a/entry/src/main/ets/pages/ForEachListPage.ets +++ b/entry/src/main/ets/pages/ForEachListPage.ets @@ -29,9 +29,11 @@ function bufferToString(buffer: ArrayBufferLike): string { return resultPut; } +// [Start ForEachListPage1_start] @Entry @Component export struct ForEachListPage { + // [StartExclude ForEachListPage1_start] @State articleList: LearningResource[] = []; @State collectedIds: ObservedArray = ['1', '2', '3', '4', '5', '6']; @State likedIds: ObservedArray = ['1', '2', '3', '4', '5', '6']; @@ -63,7 +65,7 @@ export struct ForEachListPage { isLiked(resourceId: string): boolean { return this.likedIds.some((id: string) => id === resourceId); } - + // [EndExclude ForEachListPage1_start] build() { Column() { @@ -89,6 +91,7 @@ export struct ForEachListPage { .backgroundColor($r('app.color.text_background')) } } +// [End ForEachListPage1_start] @Builder function Header() { diff --git a/entry/src/main/ets/pages/LazyForEachListPage.ets b/entry/src/main/ets/pages/LazyForEachListPage.ets index 302fb59..3b49f91 100644 --- a/entry/src/main/ets/pages/LazyForEachListPage.ets +++ b/entry/src/main/ets/pages/LazyForEachListPage.ets @@ -31,9 +31,15 @@ function bufferToString(buffer: ArrayBufferLike): string { return resultPut; } +// [Start LazyForEachListPage2_start] +// [Start LazyForEachListPage3_start] +// [Start LazyForEachListPage4_start] @Entry @Component export struct LazyForEachListPage { + // [StartExclude LazyForEachListPage3_start] + // [StartExclude LazyForEachListPage2_start] + // [StartExclude LazyForEachListPage4_start] @State collectedIds: ObservedArray = ['1', '2', '3', '4', '5', '6']; @State likedIds: ObservedArray = ['1', '2', '3', '4', '5', '6']; @State isListReachEnd: boolean = false; @@ -65,7 +71,9 @@ export struct LazyForEachListPage { isLiked(resourceId: string): boolean { return this.likedIds.some((id: string) => id === resourceId); } - + // [EndExclude LazyForEachListPage2_start] + // [EndExclude LazyForEachListPage3_start] + // [EndExclude LazyForEachListPage4_start] build() { Column() { @@ -92,12 +100,17 @@ export struct LazyForEachListPage { .height(Constants.FULL_SCREEN) .padding({ left: 10, right: 10 }) .layoutWeight(1) + // [StartExclude LazyForEachListPage2_start] // Optimization method 2:Use cachedCount .cachedCount(3); + // [EndExclude LazyForEachListPage2_start] } .backgroundColor($r('app.color.text_background')) } } +// [End LazyForEachListPage2_start] +// [End LazyForEachListPage3_start] +// [End LazyForEachListPage4_start] @Builder function Header() { -- Gitee From 62d8906f4340868f18fff640fe40185978928c54 Mon Sep 17 00:00:00 2001 From: hzt Date: Sat, 17 May 2025 11:17:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ReusableArticleCardView.ets | 11 ++++++- entry/src/main/ets/segment/segment.ets | 30 +++++++++++++++++++ entry/src/main/ets/segment/segment1.ets | 18 +++++++++++ entry/src/main/ets/segment/segment2.ets | 14 +++++++++ 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 entry/src/main/ets/segment/segment.ets create mode 100644 entry/src/main/ets/segment/segment1.ets create mode 100644 entry/src/main/ets/segment/segment2.ets diff --git a/entry/src/main/ets/components/ReusableArticleCardView.ets b/entry/src/main/ets/components/ReusableArticleCardView.ets index 0e66539..5eeca34 100644 --- a/entry/src/main/ets/components/ReusableArticleCardView.ets +++ b/entry/src/main/ets/components/ReusableArticleCardView.ets @@ -14,15 +14,22 @@ */ import { LearningResource } from '../model/LearningResource'; - +// [Start segment_start] @Component @Reusable export struct ReusableArticleCardView { @Prop articleItem: LearningResource = new LearningResource(); @Prop isCollected: boolean = false; @Prop isLiked: boolean = false; + onCollected?: () => void; + onLiked?: () => void; + aboutToReuse(params: Record): void { + this.onCollected = params.onCollected as () => void; + this.onLiked = params.onLiked as () => void; + } build() { + // [StartExclude segment_start] Row({ space: 16 }) { Column() { Column() { @@ -87,7 +94,9 @@ export struct ReusableArticleCardView { .height($r('app.float.article_card_height')) } + // [EndExclude segment_start] } +// [End segment_start] @Builder function ActionButtonBuilder(imgResource: Resource, count: number, textWidth: Resource) { diff --git a/entry/src/main/ets/segment/segment.ets b/entry/src/main/ets/segment/segment.ets new file mode 100644 index 0000000..eeec594 --- /dev/null +++ b/entry/src/main/ets/segment/segment.ets @@ -0,0 +1,30 @@ +// [Start segment1_start] +@Component +export struct ArticleCardView { + build() { + Row() { // Linear layout, layer 1 + Column() { // Linear layout, layer 2 + Column() { + Text() + Text() + } + Row() { // Linear layout, layer 3 + Row(){ // Linear layout, layer 4 + Image('') // Linear layout, layer 5 + Text() + } + Row(){ + Image('') + Text() + } + Row(){ + Image('') + Text() + } + } + } + Image('') + } + } +} +// [End segment1_start] \ No newline at end of file diff --git a/entry/src/main/ets/segment/segment1.ets b/entry/src/main/ets/segment/segment1.ets new file mode 100644 index 0000000..338e211 --- /dev/null +++ b/entry/src/main/ets/segment/segment1.ets @@ -0,0 +1,18 @@ +// [Start segment2_start] +@Component +struct ArticleCardView { + build() { + RelativeContainer() { // Relative layout, level 1 + Text()// ... + Text()// ... + Image('')// ... + Text()// ... // Relative layout, level 2 + Image('')// ... + Text()// ... + Image('')// ... + Text()// ... + Image('')// ... + } + } +} +// [End segment2_start] \ No newline at end of file diff --git a/entry/src/main/ets/segment/segment2.ets b/entry/src/main/ets/segment/segment2.ets new file mode 100644 index 0000000..8240e28 --- /dev/null +++ b/entry/src/main/ets/segment/segment2.ets @@ -0,0 +1,14 @@ +// [Start segment3_start] +@Component +struct ArticleCardView { + build() { + Column() { + Column() { + Column() { + // ... // Deliberate nesting with a maximum nesting level of 25 layers + }.width("100%") + }.width("100%") + }.width("100%") + } +} +// [End segment3_start] \ No newline at end of file -- Gitee