HarmonyOS Refresh可以通过调用方法触发下拉刷新么?

HarmonyOS
6h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

Refresh通过参数refreshing判断当前组件是否正在刷新,可以控制该参数变化来触发下拉刷新

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-refresh-V5#ZH-CN_TOPIC_0000001930756929__refreshoptions对象说明

demo:

// xxx.ets
@Entry
@Component
struct RefreshExample {
  @State isRefreshing: boolean = false
  @State arr: String[] = ['0', '1', '2', '3', '4','5','6','7','8','9','10']

  build() {
    Column() {
      Button('刷新').onClick(()=>{
        this.isRefreshing = true
      })
      Refresh({ refreshing: $$this.isRefreshing}) {
        List() {
          ForEach(this.arr, (item: string) => {
            ListItem() {
              Text('' + item)
                .width('100%').height(100).fontSize(16)
                .textAlign(TextAlign.Center).borderRadius(10).backgroundColor(0xFFFFFF)
            }
          }, (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)
      })
      .onOffsetChange((value: number) => {
        console.info('Refresh onOffsetChange offset:' + value)
      })
      .onRefreshing(() => {
        setTimeout(() => {
          this.isRefreshing = false
        }, 2000)
        console.log('onRefreshing test')
      })
      .backgroundColor(0x89CFF0)
      .refreshOffset(64)
      .pullToRefresh(true)
    }
  }
}
分享
微博
QQ
微信
回复
4h前
相关问题
HarmonyOS使用Refresh下拉刷新问题
863浏览 • 1回复 待解决
Refresh结合lottie实现下拉刷新动画
1119浏览 • 1回复 待解决
HarmonyOS 下拉刷新功能
208浏览 • 1回复 待解决
Stack组件中如何触发下层事件的控件
276浏览 • 1回复 待解决
HarmonyOS 首页下拉刷新异常
330浏览 • 1回复 待解决
HarmonyOS 组件的下拉刷新问题
479浏览 • 1回复 待解决
HarmonyOS通过方法调用的loading有吗?
420浏览 • 0回复 待解决
HarmonyOS ArkWeb如何实现下拉刷新功能
506浏览 • 1回复 待解决