当前位置:   article > 正文

OpenHarmony开发知识指南:PullToRefresh加载组件

pulltorefresh

简介

PullToRefresh是一款OpenHarmony环境下可用的下拉刷新、上拉加载组件。 支持设置内置动画的各种属性,支持设置自定义动画,支持lazyForEarch的数据作为数据源

效果展示:

内置动画效果

Refresh

Refresh

下载安装

ohpm install @ohos/pulltorefresh

使用说明

快速使用

  1. import { PullToRefresh } from '@ohos/pulltorefresh'
  2. // 需绑定列表或宫格组件
  3. private scroller: Scroller = new Scroller();
  4. PullToRefresh({
  5. // 必传项,列表组件所绑定的数据
  6. data: $data,
  7. // 必传项,需绑定传入主体布局内的列表或宫格组件
  8. scroller: this.scroller,
  9. // 必传项,自定义主体布局,内部有列表或宫格组件
  10. customList: () => {
  11. // 一个用@Builder修饰过的UI方法
  12. this.getListView();
  13. },
  14. // 可选项,下拉刷新回调
  15. onRefresh: () => {
  16. return new Promise<string>((resolve, reject) => {
  17. // 模拟网络请求操作,请求网络2秒后得到数据,通知组件,变更列表数据
  18. setTimeout(() => {
  19. resolve('刷新成功');
  20. this.data = this.dataNumbers;
  21. }, 2000);
  22. });
  23. },
  24. // 可选项,上拉加载更多回调
  25. onLoadMore: () => {
  26. return new Promise<string>((resolve, reject) => {
  27. // 模拟网络请求操作,请求网络2秒后得到数据,通知组件,变更列表数据
  28. setTimeout(() => {
  29. resolve('');
  30. this.data.push("增加的条目" + this.data.length);
  31. }, 2000);
  32. });
  33. },
  34. customLoad: null,
  35. customRefresh: null,
  36. })

其中List组件需要设置edgeEffect属性为(EdgeEffect.None)

 

支持lazyForEarch的数据作为数据源

LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当LazyForEach在滚动容器中使用了,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用 接口描述:

  1. LazyForEach(
  2. dataSource: IDataSource, // 需要进行数据迭代的数据源
  3. itemGenerator: (item: any, index?: number) => void, // 子组件生成函数
  4. keyGenerator?: (item: any, index?: number) => string // 键值生成函数
  5. ): void

IDataSource类型说明

  1. interface IDataSource {
  2. totalCount(): number; // 获得数据总数
  3. getData(index: number): Object; // 获取索引值对应的数据
  4. registerDataChangeListener(listener: DataChangeListener): void; // 注册数据改变的监听器
  5. unregisterDataChangeListener(listener: DataChangeListener): void; // 注销数据改变的监听器
  6. }

DataChangeListener类型说明

  1. interface DataChangeListener {
  2. onDataReloaded(): void; // 重新加载数据时调用
  3. onDataAdded(index: number): void; // 添加数据时调用
  4. onDataMoved(from: number, to: number): void; // 数据移动起始位置与数据移动目标位置交换时调用
  5. onDataDeleted(index: number): void; // 删除数据时调用
  6. onDataChanged(index: number): void; // 改变数据时调用
  7. onDataAdd(index: number): void; // 添加数据时调用
  8. onDataMove(from: number, to: number): void; // 数据移动起始位置与数据移动目标位置交换时调用
  9. onDataDelete(index: number): void; // 删除数据时调用
  10. onDataChange(index: number): void; // 改变数据时调用
  11. }

具体使用请看 openharmony:LazyForEach:数据懒加载

属性(接口)说明

PullToRefresh组件属性

属性类型释义默认值
dataObject[]列表或宫格组件所绑定的数据undefined
scrollerScroller列表或宫格组件所绑定的Scroller对象undefined
customList() => void自定义主体布局,内部有列表或宫格组件undefined
refreshConfiguratorPullToRefreshConfigurator组件属性配置PullToRefreshConfigurator
mWidthLength容器宽undefined(自适应)
mHeightLength容器高undefined(自适应)
onRefresh() => Promise<string>下拉刷新回调1秒后结束下拉刷新动画并提示“刷新失败”
onLoadMore() => Promise<string>上拉加载更多回调1秒后结束上拉加载动画
customRefresh() => void自定义下拉刷新动画布局undefined
onAnimPullDown(value?: number, width?: number, height?: number) => void下拉中回调undefined
onAnimRefreshing(value?: number, width?: number, height?: number) => void刷新中回调undefined
customLoad() => void自定义上拉加载动画布局undefined
onAnimPullUp(value?: number, width?: number, height?: number) => void上拉中回调undefined
onAnimLoading(value?: number, width?: number, height?: number) => void加载中回调undefined

PullToRefreshConfigurator类接口

接口参数类型释义默认值
setHasRefreshboolean是否具有下拉刷新功能true
setHasLoadMoreboolean是否具有上拉加载功能true
setMaxTranslatenumber可下拉上拉的最大距离100
setSensitivitynumber下拉上拉灵敏度0.7
setListIsPlacementboolean滑动结束后列表是否归位true
setAnimDurationnumber滑动结束后,回弹动画执行时间150
setRefreshHeightnumber下拉动画高度30
setRefreshColorstring下拉动画颜色'#999999'
setRefreshBackgroundColorResourceColor下拉动画区域背景色'rgba(0,0,0,0)'
setRefreshTextColorResourceColor下拉加载完毕后提示文本的字体颜色'#999999'
setRefreshTextSizenumber 或 string 或 Resource下拉加载完毕后提示文本的字体大小18
setRefreshAnimDurationnumber下拉动画执行一次的时间1000
setLoadImgHeightnumber上拉动画中图片的高度30
setLoadBackgroundColorResourceColor上拉动画区域背景色'rgba(0,0,0,0)'
setLoadTextColorResourceColor上拉文本的字体颜色'#999999'
setLoadTextSizenumber 或 string 或 Resource上拉文本的字体大小18
setLoadTextPullUp1string上拉1阶段文本'正在上拉刷新...'
setLoadTextPullUp2string上拉2阶段文本'放开刷新'
setLoadTextLoadingstring上拉加载更多中时的文本'正在玩命加载中...'

约束与限制

在下述版本验证通过:

  • DevEco Studio: 4.1 Canary(4.1.3.317), SDK: API11 (4.1.0.36)
  • DevEco Studio: 4.0 (4.0.3.512), SDK: API10 (4.0.10.9)
  • DevEco Studio: 4.0 Canary2(4.0.3.300), SDK: API10 (4.0.8.6)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/1008956
推荐阅读
  

闽ICP备14008679号