api 自带 Refresh 下拉刷新,请问可以做上拉加载功能吗?

api 自带 Refresh 下拉刷新,请问可以做上拉加载功能吗?


HarmonyOS
2024-09-23 13:38:23
浏览
已于2024-9-23 18:44:13修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

可以引入三方库 PullToRefresh 来实现 上拉加载和下拉刷新

地址:https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fpulltorefresh

参考demo:

// PullRefreshPage.ets  
import { PullToRefresh } from '@ohos/pulltorefresh'  
@Entry  
@Component  
struct PullRefreshPage {  
  @State refreshText: string = '';  
  private dataNumbers: string[] = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];  
  private dataStrings: string[] = ['列表item1', '列表item2', '列表item3', '列表item4', '列表item5', '列表item6', '列表item7', '列表item8'];  
  @State data: string[] = this.dataStrings;  
  // 需绑定列表或宫格组件  
  private scroller: Scroller = new Scroller();  
  
  build() {  
    Column() {  
      PullToRefresh({  
        // 必传项,列表组件所绑定的数据  
        data: $data,  
        // 必传项,需绑定传入主体布局内的列表或宫格组件  
        scroller: this.scroller,  
        // 必传项,自定义主体布局,内部有列表或宫格组件  
        customList: () => {  
          // 一个用@Builder修饰过的UI方法  
          this.getListView();  
        },  
        // 可选项,下拉刷新回调  
        onRefresh: () => {  
          return new Promise<string>((resolve, reject) => {  
            // 模拟网络请求操作,请求网络2秒后得到数据,通知组件,变更列表数据  
            setTimeout(() => {  
              resolve('刷新成功');  
              this.data = this.dataNumbers;  
            }, 2000);  
          });  
        },  
        // 可选项,上拉加载更多回调  
        onLoadMore: () => {  
          return new Promise<string>((resolve, reject) => {  
            // 模拟网络请求操作,请求网络2秒后得到数据,通知组件,变更列表数据  
            setTimeout(() => {  
              resolve('');  
              this.data.push("增加的条目" + this.data.length)  
            }, 2000);  
          });  
        },  
        customLoad: null,  
        customRefresh: null,  
      })  
    }  
  }  
  @Builder  
  private getListView() {  
    List({ space: 20, scroller: this.scroller }) {  
      ForEach(this.data, (item: string) => {  
        ListItem() {  
          Text(item).width('100%').height(150).fontSize(20).textAlign(TextAlign.Center).backgroundColor('#95efd2')  
        }  
      })  
    }  
    .divider({ strokeWidth: 1, color: 0x222222 })  
    .edgeEffect(EdgeEffect.None) // 必须设置列表为滑动到边缘无效果  
  }  
}
分享
微博
QQ
微信
回复
2024-09-23 17:50:26
相关问题
加载下拉刷新组件
311浏览 • 1回复 待解决
下拉刷新和上加载API为9的sdk
2717浏览 • 1回复 待解决
HarmonyOS使用Refresh下拉刷新问题
657浏览 • 1回复 待解决
Refresh结合lottie实现下拉刷新动画
1024浏览 • 1回复 待解决
HarmonyOS 下拉刷新功能
135浏览 • 1回复 待解决
HarmonyOS ArkWeb如何实现下拉刷新功能
349浏览 • 1回复 待解决
harmonyOS 这个加载圈 java 自带这个
3143浏览 • 1回复 待解决
请问API有没有录屏功能
8930浏览 • 1回复 待解决
HarmonyOS 首页下拉刷新异常
166浏览 • 1回复 待解决