【鸿蒙优选三方库】@ohos/pulltorefresh:一行给鸿蒙列表加上下拉刷新与上拉加载
【鸿蒙优选三方库】ohos/pulltorefresh一行给鸿蒙列表加上下拉刷新与上拉加载给 List / Scroll / Tabs / Grid / WaterFlow 一行加上下拉刷新 上拉加载ohos/pulltorefresh基于 OpenHarmony ArkUI 打造开箱即用、支持自定义动画、完美适配LazyForEach数据源——做列表类应用的必备利器。包名ohos/pulltorefresh当前版本v2.1.4-rc.0协议Apache License 2.0安装ohpm install ohos/pulltorefresh仓库https://gitcode.com/CPF-ApplicationTPC/ohos_pull_to_refresh一、它解决了什么问题鸿蒙应用做列表离不开两个高频交互下拉刷新上拉加载更多。但 ArkUI 原生的List/Scroll组件本身不带这套交互能力开发者要么自己监听手势 写动画重复造轮子找三方方案却发现兼容性差不支持LazyForEach、不支持某些容器组件上拉/下拉体验不一致、与系统风格割裂。ohos/pulltorefresh提供即插即用的 PullToRefresh / PullToRefreshV2 组件5 大系统容器全覆盖List / Scroll / Tabs / Grid / WaterFlow自定义动画支持替换内置动画、接自定义 Refresh 视图完美适配LazyForEach数据源。二、核心特点特性说明双版本组件PullToRefreshComponentPullToRefreshV2ComponentV25 大容器支持List / Scroll / Tabs / Grid / WaterFlow自定义动画替换内置 Refresh / LoadMore 动画或完全自定义视图LazyForEach 兼容完美适配懒加载数据源Promise 回调onRefresh/onLoadMore返回 Promise结束时机可控零权限纯 UI 组件无需任何权限三、适用场景新闻/资讯/Feed 流下拉刷新最新内容上拉加载历史。电商商品列表下拉刷新推荐上拉加载更多商品。聊天/消息列表下拉刷新新消息。订单/物流列表下拉刷新订单状态。视频/图片瀑布流WaterFlow 上拉加载。多 Tab 切换Tabs 每个 Tab 独立的下拉刷新与加载。任何需要分页加载的长列表场景。四、快速上手1. 安装ohpminstallohos/pulltorefresh2. PullToRefreshComponent 写法import{PullToRefresh}fromohos/pulltorefreshEntryComponentstruct RefreshList{privatescroller:ScrollernewScroller()Statedata:string[][Item 1,Item 2,Item 3]build(){PullToRefresh({// 必传列表数据data:$data,// 必传列表容器scroller:this.scroller,// 必传自定义主体布局customList:(){this.getListView()},// 可选下拉刷新回调onRefresh:(){returnnewPromisestring((resolve){setTimeout((){this.data[New 1,New 2,New 3]resolve(刷新成功)},2000)})},// 可选上拉加载更多回调onLoadMore:(){returnnewPromisestring((resolve){setTimeout((){this.data.push(新增条目${this.data.length})resolve()},2000)})}})}BuildergetListView(){List({scroller:this.scroller}){ForEach(this.data,(item:string){ListItem(){Text(item).height(60).padding(12)}},(item:string)item)}.edgeEffect(EdgeEffect.None)// ⚠️ 必需设置}}3. PullToRefreshV2ComponentV2 写法import{PullToRefreshV2}fromohos/pulltorefreshEntryComponentV2struct V2Demo{privatescroller:ScrollernewScroller()Localdata:string[][]build(){PullToRefreshV2({data:this.data,scroller:this.scroller,customList:(){this.listView()},onRefresh:(){/* ... */},onLoadMore:(){/* ... */}})}BuilderlistView(){List({scroller:this.scroller}){ForEach(this.data,(item:string){ListItem(){Text(item).height(60)}},(item:string)item)}.edgeEffect(EdgeEffect.None)}}4. 自定义动画PullToRefresh({// ...customLoad:null,// 用 null 使用内置或传自定义组件customRefresh:null,// 同上})// 完全自定义传入自定义 Builder 替换内置动画PullToRefresh({customRefresh:(){this.myCustomRefreshView()},customLoad:(){this.myCustomLoadView()}})五、亮点能力速览双版本组件兼容Component旧写法与ComponentV2新写法按项目风格选用。5 大容器支持List / Scroll / Tabs / Grid / WaterFlow 全覆盖。LazyForEach 友好完美适配懒加载数据源长列表性能不打折。Promise 回调onRefresh/onLoadMore返回 Promise组件内部根据 Promise resolve 状态收/放动画。可定制动画内置精美动画也允许完全自定义。零权限纯 UI 组件无任何系统权限要求。六、使用限制必读✅ 支持List / Scroll / Tabs / Grid / WaterFlow⚠️必须设置容器edgeEffect(EdgeEffect.None)暂不支持系统弹簧/阴影❌ 暂不支持页面触底自动触发上拉❌ 暂不支持不满一屏时触发上拉❌ 暂不支持代码方式触发下拉刷新❌ 暂不提供手势结束回调七、为什么值得选它覆盖面广5 大容器一次搞定Tabs 多 Tab 列表也能轻松应对。双版本组件新老 ArkUI 写法都支持。LazyForEach 友好长列表性能不受影响。动画可定制内置够用也可以完全自定义。零依赖零权限装上即用无系统负担。如果你的应用里有任何滚动 分页的列表场景ohos/pulltorefresh是那个让你 5 分钟搞定刷新的利器。

相关新闻

艺术涂料包工包料多少钱一平?2026山西本地避坑指南

艺术涂料包工包料多少钱一平?2026山西本地避坑指南

2026年山西艺术涂料包工包料市场价为60-888元一平方,价格差距完全取决于材料、施工工艺和售后保障。我深耕艺术涂料行业十年,常年服务山西太原、晋中、吕梁、临汾、大同、朔州、忻州、阳泉、长治、晋城、运城全省各地装修业主,深知本地市场报…

2026/10/28 4:24:18 阅读更多 →
74HC系列芯片超详细入门笔记

74HC系列芯片超详细入门笔记

一、74系列芯片是什么? 1.1 先看名字:74 两个字是什么意思? 我们平时看到的芯片名字,比如 74HC138,开头的 74 其实就是一个系列的名字,就像"iPhone"是苹果手机系列的名字一样。 这个系列是由 德州仪器(Texas Instruments) 在上世纪60年代推出的,因为所有芯…

2026/10/24 10:09:05 阅读更多 →
空号检测三网直连信令实时查询:99.99%准确率如何精准剔除停机、关机、空号三类无效号码

空号检测三网直连信令实时查询:99.99%准确率如何精准剔除停机、关机、空号三类无效号码

空号检测为何成为企业通讯降本的核心抓手 2026年,企业私域运营与短信群发风控需求持续攀升,存量号码池质量走低已成为横亘在无数运营团队面前的现实难题。企讯通空号检测作为国内较早深耕号码核验领域的专业方案,凭借三网直连通道与批量实时…

2026/10/24 6:31:10 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/27 17:33:32 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/27 18:20:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 19:19:37 阅读更多 →