openharmony容器组件之Refresh

Refresh:下拉刷新容器
Refresh(value: {refreshing: boolean, offset?: Length, friction?: number})
refreshing:当前组件是否正在刷新
offset:刷新组件静止时距离父组件顶部的距离(默认16)
friction:下拉摩擦系数,取值范围为0到100(默认62)
        0表示下拉刷新容器不跟随手势下拉而下拉
        100表示下拉刷新容器紧紧跟随手势下拉而下拉
        数值越大,下拉刷新容器跟随手势下拉的反应越灵敏
事件:
onStateChange(callback: (state: RefreshStatus) => void)    当前刷新状态变更时,触发回调。
    state:刷新状态
        Inactive:默认未下拉状态
        Drag:下拉中,下拉距离小于刷新距离
        OverDrag:下拉中,下拉距离超过刷新距离
        Refresh:下拉结束,回弹至刷新距离,进入刷新状态
        Done:刷新结束,返回初始状态(顶部)
onRefreshing(callback: () => void)    进入刷新状态时触发回调

效果如图:

 代码:

@Entry
@Component
struct RefreshPage {
  @State isRefreshing: boolean = false
  @State counter: number = 0

  build() {
    Column() {
      Refresh({ refreshing: this.isRefreshing, offset: 120, friction: 100 }) {
        Text('pull down and refresh:' + this.counter).fontSize(30).margin(10)
      }.onStateChange((refreshStatus: RefreshStatus) => {
        console.info('Refresh onStatueChange state is ' + refreshStatus.toString())
      }).onRefreshing(() => {
        setTimeout(() => {
          this.counter++
          this.isRefreshing = false
        }, 1000)
        console.log('onRefreshing test')
      })

    }
    .width('100%')
    .height('100%')
  }
}

猜你喜欢

转载自blog.csdn.net/lplj717/article/details/126265999