梨恐 发表于 2025-6-10 13:43:22

鸿蒙Next仓颉语言开发实战教程:下拉刷新和上拉加载更多

在移动应用中,各种列表页面离不开下拉刷新和上拉加载更多,我们的商城应用也是如此。今天介绍一下在仓颉开发语言中如何实现这一功能。
下拉刷新

仓颉开发语言直接提供了下拉刷新的组件,叫做Refresh,使用起来也非常方便:
@State var headerLoading : Bool = false;

Refresh(RefreshParams(refreshing: @Binder(this.headerLoading))) {
List{
      ForEach(this.carList,
      itemGeneratorFunc:{
            
            item:CarItem, index: Int64 => ListItem {
            }
            })
        }
}
.onRefreshing({ =>
    Timer.once(Duration.second*2,{=>
            this.headerLoading = false
         })
    AppLog.info('onRefreshing')
    })
.onStateChange({state =>
   AppLog.info('onStateChange')
    })上述代码演示了Refresh的基本使用,并且使用计时器模拟网络加载效果,两秒后自动加载完成,其中onRefreshing是进入刷新状态的回调,onStateChange为刷新状态改变的回调。
计时器的用法也还需要大家再次熟悉一下,Timer.once表示一次性的计时器,Duration.second*2表示执行间隔是2秒,这种写法还是比较独特的。
上拉加载更多
关于上拉加载更多,仓颉的文档中并没有这部分的内容,幽蓝君参考ArkTs写了一个解决方案,仅供大家参考。

实现思路是在List最后一行添加加载动画组件,默认隐藏,当List滑动到最后一行则显示加载动画并开始请求数据,具体代码如下:
@State var footerLoading:Bool = false

List{
    ForEach(this.carList,
      itemGeneratorFunc:{
            
            item:CarItem, index: Int64 => ListItem {
            }
            })
   
    ListItem {
      if(this.footerLoading){
            Row(12){
                LoadingProgress()
                .height(40)
                .width(40)
               
                Text('加载中...')
                .fontSize(14)
                .fontColor(Color.GRAY)
            }
            .width(100.percent)
            .height(50)
            .alignItems(VerticalAlign.Center)
            .justifyContent(FlexAlign.Center)
      }
    }
}
.onScrollIndex({startNum,endNum =>
    if(Int64(endNum) >= this.carList.size - 1){
            this.footerLoading = true
            Timer.once(Duration.second*3,{=>
                        this.footerLoading = false
                  })
    }
    CJTools.log('endNum-list:' + this.carList.size.toString())
    })上面代码需要注意的是如何判断列表滑动到了底部,主要是判断数组的长度,在仓颉中数组的长度属性是size,类型是Int64。
以上就是今天的内容分享,感谢阅读。##HarmonyOS语言##仓颉##购物#

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

何玲 发表于 2025-11-2 07:14:51

东西不错很实用谢谢分享

裆趾针 发表于 2025-12-18 04:37:56

热心回复!

捐催制 发表于 2025-12-27 09:50:09

过来提前占个楼

诘琅 发表于 2025-12-29 17:17:17

喜欢鼓捣这些软件,现在用得少,谢谢分享!

氛疵 发表于 2025-12-30 03:25:25

感谢分享,下载保存了,貌似很强大

梁丘眉 发表于 2025-12-30 05:38:34

过来提前占个楼

事确 发表于 2026-1-3 03:57:04

谢谢分享,试用一下

静轾 发表于 2026-1-11 06:16:32

谢谢分享,试用一下

咫噎 发表于 2026-1-14 10:38:32

前排留名,哈哈哈

舒菀菀 发表于 2026-1-15 09:59:27

感谢分享,学习下。

麓吆 发表于 2026-1-18 08:28:46

感谢分享,学习下。

愤血冒 发表于 2026-1-18 18:36:07

谢谢楼主提供!

荏牌 发表于 2026-1-20 18:05:27

喜欢鼓捣这些软件,现在用得少,谢谢分享!

癖艺泣 发表于 2026-1-21 15:30:27

新版吗?好像是停更了吧。

左优扬 发表于 2026-1-24 05:18:24

谢谢楼主提供!

柯惠心 发表于 2026-1-25 22:12:42

前排留名,哈哈哈

康器 发表于 2026-1-27 05:32:46

谢谢分享,试用一下

焦听云 发表于 2026-1-28 02:42:51

喜欢鼓捣这些软件,现在用得少,谢谢分享!

皇甫佳文 发表于 2026-1-28 08:24:45

感谢发布原创作品,程序园因你更精彩
页: [1] 2
查看完整版本: 鸿蒙Next仓颉语言开发实战教程:下拉刷新和上拉加载更多