HarmonyOS NEXT实战:进度条

简介: 本教程介绍HarmonyOS中Progress组件的使用,涵盖进度条类型、样式设置及属性配置,通过实战示例ProgressBarDemoPage演示如何实现可视化进度展示,适用于教育和应用开发学习场景。

HarmonyOS Next实战##HarmonyOS SDK应用服务##教育

目标:实现进度的可视化。

知识点:
Progress:进度条组件,用于显示内容加载或操作处理等进度。

设置进度条样式
Progress有5种可选类型,通过ProgressType可以设置进度条样式,ProgressType类型包括:ProgressType.Linear(线性样式)、 ProgressType.Ring(环形无刻度样式)、ProgressType.ScaleRing(环形有刻度样式)、ProgressType.Eclipse(圆形样式)和ProgressType.Capsule(胶囊样式)。

接口

Progress(options: ProgressOptions)

创建进度条组件。

ProgressOptions对象
value:指定当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。默认值:0
total:指定进度总长。设置小于等于0的数值时置为100。默认值:100
type:指定进度条类型。默认值:ProgressType.Linear

Progress属性

value(value: number) //设置当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。非法数值不生效。默认值:0
color(value: ResourceColor | LinearGradient) //设置进度条前景色。
style(value: ProgressStyleOptions | CapsuleStyleOptions | RingStyleOptions | LinearStyleOptions | ScaleRingStyleOptions | EclipseStyleOptions)//设置组件的样式。
contentModifier(modifier:ContentModifier<ProgressConfiguration>)//在progress组件上,定制内容区的方法。modifier: 内容修改器,开发者需要自定义class实现ContentModifier接口。
privacySensitive(isPrivacySensitiveMode: Optional<boolean>)//设置隐私敏感,隐私模式下进度清零,文字将被遮罩。说明:设置null则不敏感。需要卡片框架支持。

ProgressConfiguration属性

  • value:当前进度值。当设置的数值小于0时,将其置为0。当设置的数值大于total时,将其置为total。默认值:0,取值范围:[0, total]
  • total:进度总长。取值范围:[0, +∞]

CommonProgressStyleOptions属性
enableSmoothEffect:进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。默认值:true

ProgressStyleOptions属性

  • strokeWidth:设置进度条宽度(不支持百分比设置)。默认值:4.0vp
  • scaleCount:设置环形进度条总刻度数。默认值:120,取值范围:[2, min(width, height)/scaleWidth/2/π],不在取值范围内则样式会显示为环形无刻度进度条。
  • scaleWidth:设置环形进度条刻度粗细(不支持百分比设置),刻度粗细大于进度条宽度时,为系统默认粗细。默认值:2.0vp

实战:ProgressBarDemoPage

@Entry
@Component
struct ProgressBarDemoPage {
   
  @State isStart: boolean = false
  @State value: number = 0
  timer: number = 0

  build() {
   
    Column({
    space: 20 }) {
   
      Text('进度条Demo')

      Text(`当前进度:${
     this.value}%`)

      Progress({
    value: this.value, total: 100, type: ProgressType.Linear })
        .style({
    strokeWidth: 10, enableSmoothEffect: true })

      Row({
    space: 20 }) {
   
        Column({
    space: 10 }) {
   
          SymbolGlyph(this.isStart ? $r('sys.symbol.pause') : $r('sys.symbol.play_fill'))
            .fontSize(30)
            .renderingStrategy(SymbolRenderingStrategy.SINGLE)
            .fontColor([Color.Black])
          Text(this.isStart ? '暂停' : '开始')
        }
        .onClick(() => {
   
          this.isStart = !this.isStart
          this.updateProgress()
        })

        Column({
    space: 10 }) {
   
          SymbolGlyph($r('sys.symbol.arrow_counterclockwise'))
            .fontSize(30)
            .renderingStrategy(SymbolRenderingStrategy.SINGLE)
            .fontColor([Color.Black])
          Text('重置')
        }
        .onClick(() => {
   
          clearInterval(this.timer); // 关闭定时器
          this.value = 0
        })
      }
    }
    .height('100%')
    .width('100%')
    .padding({
    top: 10, right: 20, left: 20 })
  }

  updateProgress() {
   
    if (this.isStart) {
   
      this.timer = setInterval(() => {
   
        this.value = this.value + 1;
        if (this.value === 100) {
   
          clearInterval(this.timer); // 关闭定时器
        }
      }, 100)
    } else {
   
      clearInterval(this.timer); // 关闭定时器
    }
  }
}
目录
相关文章
|
9月前
|
监控 JavaScript 编译器
从“天书”到源码:HarmonyOS NEXT 崩溃堆栈解析实战指南
本文详解如何利用 hiAppEvent 监控并获取 sourcemap、debug so 等核心产物,剖析了 hstack 工具如何将混淆的 Native 与 ArkTS 堆栈还原为源码,助力开发者掌握异常分析方法,提升应用稳定性。
1031 94
|
10月前
|
开发者 容器
鸿蒙应用开发从入门到实战(十四):ArkUI组件Column&Row&线性布局
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解Column和Row组件的使用以及线性布局的方法。
790 12
|
10月前
|
JavaScript 开发者 索引
鸿蒙应用开发从入门到实战(九):ArkTS渲染控制
ArkTS拓展了TypeScript,可以结合ArkUI进行渲染控制,是的界面设计具有可编程性。本文简要描述鸿蒙应用开发中的条件渲染和循环渲染。
389 5
|
10月前
|
API 数据处理
鸿蒙应用开发从入门到实战(十三):ArkUI组件Slider&Progress
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解滑块Slider和进度条Progress组件的使用。
393 1
|
9月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1680 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
9月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1101 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
9月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1188 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
10月前
|
数据安全/隐私保护 开发者
鸿蒙应用开发从入门到实战(十一):ArkUI组件Text&TextInput
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解文本组件Text和TextInput的使用。
565 3
|
10月前
|
存储 缓存 5G
鸿蒙 HarmonyOS NEXT端云一体化开发-云存储篇
本文介绍用户登录后获取昵称、头像的方法,包括通过云端API和AppStorage两种方式,并实现上传头像至云存储及更新用户信息。同时解决图片缓存问题,添加上传进度提示,支持自动登录判断,提升用户体验。
393 1
|
9月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
419 0

热门文章

最新文章