• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Refresh
2
3 可以进行页面下拉操作并显示刷新动效的容器组件。
4
5>  **说明:**
6>
7>  该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9## 子组件
10
11支持单个子组件。
12
13## 接口
14
15Refresh\(value: \{ refreshing: boolean, offset?:  number | string , friction?: number | string \}\)
16
17**参数:**
18
19| 参数 | 参数名 | 必填 | 参数描述 |
20| -------- | -------- | -------- | -------- |
21| refreshing | boolean | 是 | 当前组件是否正在刷新。<br/>该参数支持[$$](../../ui/ts-syntactic-sugar.md)双向绑定变量。 |
22| offset | string&nbsp;\|&nbsp;number | 否 | 刷新组件静止时距离父组件顶部的距离。<br/>默认值:16,单位vp |
23| friction | number&nbsp;\|&nbsp;string | 否 | 下拉摩擦系数,取值范围为0到100。<br/>默认值:62<br/>-&nbsp;0表示下拉刷新容器不跟随手势下拉而下拉。<br/>-&nbsp;100表示下拉刷新容器紧紧跟随手势下拉而下拉。<br/>-&nbsp;数值越大,下拉刷新容器跟随手势下拉的反应越灵敏。 |
24
25
26
27## 事件
28
29
30| 名称 | 描述 |
31| -------- | -------- |
32| onStateChange(callback: (state: [RefreshStatus](#refreshstatus枚举说明)) => void)| 当前刷新状态变更时,触发回调。<br/>-&nbsp;state:刷新状态。 |
33| onRefreshing(callback: () => void)| 进入刷新状态时触发回调。 |
34
35## RefreshStatus枚举说明
36
37| 名称 | 描述 |
38| -------- | -------- |
39| Inactive | 默认未下拉状态。 |
40| Drag | 下拉中,下拉距离小于刷新距离。 |
41| OverDrag | 下拉中,下拉距离超过刷新距离。 |
42| Refresh | 下拉结束,回弹至刷新距离,进入刷新状态。 |
43| Done | 刷新结束,返回初始状态(顶部)。 |
44
45
46## 示例
47
48```ts
49// xxx.ets
50@Entry
51@Component
52struct RefreshExample {
53  @State isRefreshing: boolean = false
54  @State counter: number = 0
55
56  build() {
57    Column() {
58      Refresh({ refreshing: $$this.isRefreshing, offset: 120, friction: 100 }) {
59        Text('Pull Down and refresh: ' + this.counter)
60          .fontSize(30)
61          .margin(10)
62      }
63      .onStateChange((refreshStatus: RefreshStatus) => {
64        console.info('Refresh onStatueChange state is ' + refreshStatus)
65      })
66      .onRefreshing(() => {
67        setTimeout(() => {
68          this.counter++
69          this.isRefreshing = false
70        }, 1000)
71        console.log('onRefreshing test')
72      })
73    }
74  }
75}
76```
77
78![](figures/refresh.gif)
79