harmony OS NEXT-Refresh 容器组件
2025-03-22 15:43:05
237次阅读
0个评论
鸿蒙Harmony-Refresh 容器组件笔记
1. 组件概述
- 作用:用于实现下拉刷新功能,通常包裹可滚动组件(如 Scroll/List/Grid),提供数据刷新的交互体验。
- 核心功能:监听下拉动作、触发刷新状态、自定义刷新 UI。
2. 导入方式
import { Refresh } from '@ohos.arkui.advanced'
3. 子组件
- 
  必须包含且只能包含一个子组件(通常为 Scroll/List/Grid等滚动容器)。
- 
  示例: Refresh() { Scroll() { // 内容区域 } }
4. 关键属性
| 属性名 | 类型 | 说明 | 
|---|---|---|
| refreshing | boolean | 控制刷新状态( true表示正在刷新,false结束刷新) | 
| offset | number | string | 下拉触发刷新的阈值(单位:vp) | 
| friction | number | string | 下拉阻力系数(值越大,下拉越费力) | 
| disabled | boolean | 是否禁用下拉刷新功能(默认 false) | 
5. 事件说明
| 事件名 | 触发时机 | 回调参数 | 
|---|---|---|
| onStateChange(callback: (state: RefreshStatus) => void) | 下拉状态变化时触发 | state表示当前状态: -Inactive(未激活) -Drag(拖动中) -OverDrag(超过阈值) -Refresh(刷新中) -Done(刷新完成) | 
| onRefreshing(callback: () => void) | 用户下拉超过阈值松手后触发 | 无 | 
6. 使用示例
@Entry
@Component
struct RefreshExample {
  @State isRefreshing: boolean = false
  build() {
    Column() {
      Refresh({ refreshing: this.isRefreshing, offset: 120 }) {
        Scroll() {
          // 滚动内容
        }
      }
      .onStateChange((state: RefreshStatus) => {
        console.log(`Refresh state: ${state}`)
      })
      .onRefreshing(() => {
        // 模拟异步加载
        setTimeout(() => {
          this.isRefreshing = false // 结束刷新
        }, 2000)
      })
    }
  }
}
7. 注意事项
- 层级关系:Refresh必须是滚动容器的直接父组件。
- 状态控制:刷新完成后需手动将 refreshing设为false。
- 性能优化:避免在 onRefreshing中执行耗时操作,建议使用异步任务。
- 样式定制:可通过子组件自定义加
00
- 0回答
- 1粉丝
- 0关注
相关话题
- harmony OS NEXT-Progress组件概述
- harmony OS NEXT-基本组件结构
- harmony OS NEXT-常用组件及其导航
- harmony OS NEXT-ArkTS组件结构和状态管理
- harmony OS NEXT-Image组件如何引用网络图片
- harmony OS NEXT-启动页开发
- harmony OS NEXT-Navagation基本用法
- Harmony OS Next应用开发之HTTP请求
- harmony OS NEXT-ArkTs面向对象编程
- harmony OS NEXT–状态管理器–@State详解
- harmony OS NEXT-应用状态-AppStorage详细介绍
- harmony OS NEXT-评论功能小demo
- harmony OS NEXT-音频录制与播放模块
- 「星辰启明时 代码绘鸿图」Harmony OS Next
- Harmony OS Next里的Web组件:网页加载的全流程掌控手册

