InfiniteList应用示例

介绍

本示例通过[ArkUI-X] Entry Ability模版创建的一个工程,可通过推拽列表来进行滑动位置。布局中包含三种①颜色资源、②文本索引、③价格标签,三种属性封装在MyDataSource类里,该MyDataSource类继承自BasicDataSource,BasicDataSource类实现了IDataSource接口并提供了许多与数据源相关的方法。

效果预览

Android平台 iOS平台 鸿蒙平台
Android平台 iOS平台 鸿蒙平台

使用说明

1、打开应用,首页面显示一个长列表界面,内部有Text、color、price、ListItem等。
2、拖拽页面上下滑动,看到色彩对应的价格,按需迭代去展示刷新到的数据,页面发生改变。
3、每加载200个数据,会提示一次是否继续加载。

工程目录

entry/src/main/ets
|---bean
|   |---BasicDataSource.ets               // LazyForEach数据源的基础数据类
|   |---InfiniteData.ets                  // 列表item的数据类
|   |---MyDataSource.ets                  // 无限列表自定义数据类
|---entryability
|   |---EntryAbility.ets                  // Ability入口文件
|---pages
|   |---index.ets                         // 首页

具体实现

  • 基本的页面展示封装在Index,源码参考:Index.ets
    • 首页由List和LazyForEach构成。每个ListItem中都包含不同的颜色、文本、价格信息以区分。
    • LazyForEach中的数据来源是MyDataSource.ets,MyDataSource在初始化时会构建新的颜色和价格。MyDataSource继承自BasicDataSource.ets
    • 当首页中的list滑动到底部时,会触发onReachEnd()监听回调,然后弹出弹框询问是否继续加载。如果用户选择确定,那么就会调用MyDataSource.ets中的setData()函数补充数据,并刷新页面,达到无限列表的效果。

相关权限

不涉及

依赖

不涉及

约束与限制

1.本示例仅支持标准Android/iOS/鸿蒙系统上运行。

2.本示例已适配API version 12版本的ArkUI-X SDK,版本号:2.0.0.27及以上。

3.本示例需要使用DevEco Studio 5.0 Beta1 (Build Version: 5.0.3.403, built on June 21, 2024)及以上版本才可编译运行。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo /InfiniteList > .git/info/sparse-checkout
git remote add origin https://gitcode.com/arkui-x/samples.git
git pull origin master