HarmonyOS 鸿蒙Next 应用开发时 如何添加页面的骨架图以提升响应速度

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 应用开发时 如何添加页面的骨架图以提升响应速度

    • 在鸿蒙应用开发过程中,如何添加页面的骨架图作为默认展示,以减少用户等待时间?

2 回复

鸿蒙应用页面中可以使用骨架屏来实现加载时的渲染展示。在数据源保持不变的场景中,可以直接采用基本数据类型进行渲染,例如使用骨架屏列表进行展示。

参考:

class MyDataSource implements IDataSource {
  private list: number[] = []

  constructor(list: number[]) {
    this.list = list
  }

  totalCount(): number {
    return this.list.length
  }

  getData(index: number): number {
    return this.list[index]
  }

  registerDataChangeListener(listener: DataChangeListener): void {
  }

  unregisterDataChangeListener() {
  }
}
@Entry
@Component
export struct ListExample {
  private arr: MyDataSource = new MyDataSource([])
  private listScroller: ListScroller = new ListScroller()

  aboutToAppear(): void {
    let list: number[] = []
    for (let i = 1; i <= 3000; i++) {
      list.push(i);
    }
    this.arr = new MyDataSource(list)
  }

  build() {
    NavDestination() {
      Column() {
        List({ space: 20, initialIndex: 100, scroller: this.listScroller }) {
          LazyForEach(this.arr, (item: number) => {
            ListItem() {
              Text('' + item)
                .width('100%')
                .height(100)
                .fontSize(16)
                .textAlign(TextAlign.Center)
                .borderRadius(10)
                .backgroundColor(0xFFFFFF)
            }
          }, (item: string) => item)
        }
        .onAppear(() => {
          // this.listScroller.scrollToIndex(100, false, ScrollAlign.CENTER)
        })
        .listDirection(Axis.Vertical) // 排列方向
        .scrollBar(BarState.Off)
        .friction(0.6)
        .divider({ strokeWidth: 2, color: 0xFFFFFF, startMargin: 20, endMargin: 20 }) // 每行之间的分界线
        .edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring
        .width('90%')
        .cachedCount(3)
      }
      .width('100%')
      .height('100%')
      .backgroundColor(0xDCDCDC)
      .padding({ top: 5 })
    }.hideTitleBar(true)
  }
}

在HarmonyOS鸿蒙Next应用开发中,添加页面的骨架图(Skeleton Screen)是提升响应速度和用户体验的有效手段。骨架图能够在数据加载时为用户提供即时反馈,减少因网络延迟或数据处理造成的“白屏”现象。

要实现这一功能,开发者可以遵循以下步骤:

  1. 设计骨架图布局:骨架图通常包括简单的线条、圆形等,以模拟最终加载完成后的页面结构。使用ArkUI的组件(如Row、Column等)来设计占位符布局。
  2. 动态切换页面内容:根据数据加载状态(如加载中、加载成功、加载失败等),动态显示骨架图或实际页面内容。这通常通过状态变量和条件渲染(如if/else)来实现。
  3. 优化性能:确保骨架图的加载和渲染过程高效,避免对应用性能造成额外负担。可以使用懒加载(LazyLoad)等技术来优化资源使用。

通过以上步骤,开发者可以在HarmonyOS鸿蒙Next应用中成功添加骨架图,从而显著提升页面的响应速度和用户体验。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部