开源鸿蒙跨平台训练营DAY4~6:Flutter for OpenHarmony 本地蘑菇百科数据列表上拉加载 + 下拉刷新 + 数据加载提示实现
本文介绍了开源鸿蒙跨平台工程中蘑菇列表页面的功能开发与验证过程。主要实现了:1) 列表页面的上拉加载和下拉刷新功能,包括分页参数设置、数据加载逻辑和状态管理;2) 多状态UI提示(加载中/失败/空数据)和列表项布局优化;3) 鸿蒙设备运行验证,确保API地址配置正确并完成功能测试;4) 代码版本管理,将新增功能提交至Git仓库。
#学习资料:
可参考https://bxming.blog.csdn.net/article/details/156203132
https://blog.csdn.net/tyty0214/article/details/157311564?fromshare=blogdetail&sharetype=blogdetail&sharerId=157311564&sharerefer=PC&sharesource=tyty0214&sharefrom=from_link
https://blog.csdn.net/tyty0214/article/details/157379995
https://blog.csdn.net/tyty0214/article/details/157442068
#前置条件:
##环境搭建
1.已安装VScode,Git,DevEco Studio,Java17,Android Studio这些软件。
##多终端工程创建运行
##注册AtomGit账号
#具体流程:
##一,功能开发与代码修改
核心修改文件:lib/pages/mushroom_list_page.dart(列表页面逻辑)
-
初始化核心状态变量
- 新增刷新加载控制器:
RefreshController _refreshController = RefreshController(initialRefresh: false); - 新增分页参数:
int _page = 1; final int _pageSize = 5;(控制 5 条 / 页) - 新增状态变量:
bool _hasMore = true;(是否有更多数据)、LoadState _loadState = LoadState.loading;(加载状态枚举)
- 新增刷新加载控制器:
-
实现数据加载核心方法
_loadData- 逻辑:根据
isRefresh(是否刷新)判断是重置数据还是追加数据 - 关键修复:下拉刷新时强制重置
_page = 1和_hasMore = true,避免刷新后无法上拉 - 数据处理:从 API 获取数据后,解析为
MushroomModel列表,更新 UI 状态
- 逻辑:根据
-
实现下拉刷新与上拉加载回调
- 下拉刷新:
_onRefresh()→ 调用_loadData(isRefresh: true)

- 上拉加载:
_onLoading()→ 调用_loadData(isRefresh: false),判断_hasMore决定是否加载 

- 下拉刷新:
-
添加多状态提示 UI(
_buildStateWidget)- 加载中:显示圆形进度条 +「正在加载蘑菇列表...」

- 加载失败:显示错误图标 + 重试按钮
- 数据为空:显示空状态图标 + 提示文本
- 加载成功:隐藏状态遮罩,显示列表
- 加载中:显示圆形进度条 +「正在加载蘑菇列表...」
-
优化列表 Item 布局(
_buildMushroomItem)- 实现图片 + 文字横向布局,添加图片加载中 / 失败占位图标
- 优化阴影、圆角样式,提升视觉效果
##二,鸿蒙设备运行验证
-
环境准备
- 确保鸿蒙虚拟机(NAT 模式)已启动,API 服务正常运行(
node server.js)

- 确认 Flutter 项目中 API 地址已改为
http://10.0.2.2:5000/api(NAT 模式固定映射)
- 确保鸿蒙虚拟机(NAT 模式)已启动,API 服务正常运行(
##三,代码上传至远端仓库



#DAY3总结:
##主要任务:
为开源鸿蒙跨平台工程的列表清单实现上拉加载、下拉刷新及数据加载提示能力,并完成开源鸿蒙设备运行验证。
##完成
###1. 列表功能增强
-
✅ 已实现列表上拉加载更多、下拉刷新完整逻辑
-
✅ 已添加加载中 / 加载失败 / 数据为空的多状态提示 UI
-
✅ 已修复下拉刷新后无法上拉加载的状态重置问题
-
✅ 已优化列表 Item 布局,添加图片加载中 / 失败占位图标
###2. 鸿蒙设备验证
-
✅ 已确认 API 地址配置为
http://10.0.2.2:5000/api,适配 NAT 模式虚拟机 -
✅ 已验证应用在鸿蒙虚拟机中可正常加载列表数据和图片
-
✅ 已完成上拉加载、下拉刷新、异常重试的全流程功能测试
###3. 代码版本管理
更多推荐



所有评论(0)