ArkTS的List组件如何实现下拉刷新效果?

ArkTS的List组件如何实现下拉刷新效果?

HarmonyOS
2024-07-05 18:03:59
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
友人FA
@State show: boolean = false
@State isRefreshing: boolean = false
@State arr: string[] = []

aboutToAppear(): void {
  for (let index = 0; index < 10; index++) {
    this.arr.push("item" + index)
  }
}

@Builder
customRefreshComponent() {
  Stack() {
    Row() {
      LoadingProgress().height(32)
      Text("正在刷新...").fontSize(16).margin({ left: 20 })
    }
    .alignItems(VerticalAlign.Center)
  }.width("100%").align(Alignment.Center)
  .margin(15)
}

build() {
  Column() {
    Refresh({ refreshing: $$this.isRefreshing, builder: this.customRefreshComponent() }) {
      List() {
        ForEach(this.arr, (item: string) => {
          ListItem() {
            Text('' + item)
              .width('96%')
              .height(100)
              .fontSize(16)
              .textAlign(TextAlign.Center)
              .borderRadius(10)
              .backgroundColor(Color.White)
              .margin({top:10})
          }.width("100%")
        }, (item: string) => item)
      }
      .onScrollIndex((first: number) => {
        console.info(first.toString())
      })
      .width('100%')
      .height('100%')
      .divider({
        strokeWidth: 1,
        color: Color.Yellow,
        startMargin: 10,
        endMargin: 10
      })
      .scrollBar(BarState.Off)
    }
    .onStateChange((refreshStatus: RefreshStatus) => {
      console.info('Refresh onStatueChange state is ' + refreshStatus)
    })
    .onRefreshing(() => {
      //模拟网络请求操作
      setTimeout(() => {
        this.isRefreshing = false
      }, 2000)
      console.log('onRefreshing test')
    })
    .backgroundColor(0x89CFF0)
  }
}

分享
微博
QQ
微信
回复
2024-07-06 10:57:45
相关问题
如何使用Swiper组件实现下拉刷新
856浏览 • 1回复 待解决
HarmonyOS ArkWeb如何实现下拉刷新功能
526浏览 • 1回复 待解决
Refresh结合lottie实现下拉刷新动画
1152浏览 • 1回复 待解决
HarmonyOS 怎么实现下拉分类列表?
267浏览 • 1回复 待解决
List组件如何实现多列效果
2131浏览 • 1回复 待解决
HarmonyOS 组件下拉刷新问题
512浏览 • 1回复 待解决
如何实现list折叠动画效果
520浏览 • 1回复 待解决
上拉加载,下拉刷新组件
447浏览 • 1回复 待解决