ArkTS的滑动加载案例
/** * ArkTS的滑动加载案例 */ // 自定义文章类 class Article { public id: number public title: string public content: string constructor(id:number, title:string, content:string) { this.id = id this.title = title this.content = content } } // 定义一篇文章展示的子组件 @Component struct ArticleComponent { article: Article build() { Row() { // Image('../../resources/base/media/icon.png') Image($r('app.media.icon')) .width(80) .height(80) .margin({right: 20}) Column() { Text(this.article.title) .fontSize(20) .margin({bottom: 8}) .fontColor(Color.Red) Text(this.article.content) .fontSize(16) .fontColor(Color.Brown) .margin({bottom: 8}) } .alignItems(HorizontalAlign.Start) .width('80%') .height('100%') } .padding(20) .borderRadius(12) // 圆角矩形 .backgroundColor('#FFECECEC') .height(80) .width('100%') .justifyContent(FlexAlign.SpaceBetween) } } @Entry @Component struct MyParent { // 是否导到列表的底部 @State isListReachEnd: boolean = false @State article_array: Array<Article> = [ // 初始化的时候,先创建几篇文章 new Article(1, '第1篇文章', '精进自己,分享他人!'), new Article(2, '第2篇文章', '精进自己,分享他人!'), new Article(3, '第3篇文章', '精进自己,分享他人!'), new Article(4, '第4篇文章', '精进自己,分享他人!'), new Article(5, '第5篇文章', '精进自己,分享他人!'), new Article(6, '第6篇文章', '精进自己,分享他人!'), new Article(7, '第7篇文章', '精进自己,分享他人!'), new Article(8, '第8篇文章', '精进自己,分享他人!'), new Article(9, '第9篇文章', '精进自己,分享他人!') ] build() { Column() { List() { ForEach(this.article_array, (item: Article)=>{ ArticleComponent({article: item}) .margin({top:20}) }) }.onReachEnd(()=>{ // 到达列表的底部 this.isListReachEnd = true }) .parallelGesture(PanGesture({direction:PanDirection.Up, distance:80}) .onActionStart(()=>{ // 检测到往上滑动的手势 if (this.isListReachEnd) { // 加载新的文章 for (let index = 0; index < 3; index++) { // 一次加载3篇文章,循环可更改 let count = this.article_array.length let new_id = count + 1 this.article_array.push(new Article(new_id, '第'+new_id+'篇文章','精进自己,分享他人!')) this.isListReachEnd = false } } })) .padding(20) .scrollBar(BarState.Off) } .width('100%') .height('100%') } }
来源B站公开视频:
华为大佬最新鸿蒙HarmonyOS4.0(鸿蒙4)开发应用从入门到实战视频教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异