0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【HarmonyOS 5】鸿蒙中进度条的使用详解

HarmonyOS解决方案 ? 来源:HarmonyOS解决方案 ? 作者:HarmonyOS解决方案 ? 2025-07-11 18:26 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

HarmonyOS 5】鸿蒙中进度条的使用详解

##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财#

一、HarmonyOS中Progress进度条的类型

图像 21.jpeg

HarmonyOS的ArkUI框架为开发者提供了多种类型的进度条,每种类型都有其独特的样式,以满足不同的设计需求。以下是几种常见的进度条类型:

  1. 线性进度条(Linear :这是最常见的进度条样式,以直线的形式展示进度。从API version 9开始,当组件高度大于宽度时,它会自适应垂直显示;当高度和宽度相等时,保持水平显示。
  2. 环形无刻度进度条(Ring) :这种进度条呈环形,通过环形圆环的逐渐填充来显示进度,默认前景色为蓝色,默认strokeWidth进度条宽度为2.0vp。
  3. 环形有刻度进度条(ScaleRing) :它显示类似时钟刻度形式的进度展示效果。在头尾两端圆弧处的进度展示效果与圆形样式(Eclipse)相同,中段处的进度展示效果为矩形状长条,与线性样式相似。从API version 9开始,当刻度外圈出现重叠时,它会自动转换为环形无刻度进度条。
  4. 椭圆形进度条(Eclipse) :显示类似月圆月缺的进度展示效果,从月牙逐渐变化至满月。
  5. 胶囊进度条(Capsule) :头尾两端圆弧处的进度展示效果与椭圆形样式(Eclipse)相同,中段处的进度展示效果与线性样式(Linear)相同。当高度大于宽度时,它会自适应垂直显示。

三、使用ArkTS创建和设置进度条

(一)创建进度条

在ArkTS中,我们通过调用Progress接口来创建进度条。以下是创建进度条的基本语法:

Progress({ value: number, total?: number, type?: ProgressType })

(二)设置进度条样式

我们可以在创建进度条时,通过设置ProgressType枚举类型给type可选项指定不同的进度条类型,从而实现多样化的样式。以下是不同类型进度条的设置示例:

  1. 线性进度条
Progress({ value: 50, total: 100, type: ProgressType.Linear })
  1. 环形无刻度进度条
Progress({ value: 30, total: 100, type: ProgressType.Ring })
  1. 环形有刻度进度条
Progress({ value: 70, total: 100, type: ProgressType.ScaleRing })
  1. 椭圆形进度条
Progress({ value: 10, total: 100, type: ProgressType.Eclipse })
  1. 胶囊进度条
Progress({ value: 45, total: 100, type: ProgressType.Capsule })

(三)动态更新进度

进度条的关键功能之一是能够在任务执行过程中动态更新进度,以反映任务的实时进展。

在鸿蒙Progress组件中通过value和total两个属性来实现进度条得更新效果,源码如下:

其中,value用于设置初始进度值,total用于设置进度总长度,type决定Progress的样式。如果不设置type,默认使用线性进度条样式。

Progress({ value: 24, total: 100, type: ProgressType.Linear })
import prompt from '@ohos.prompt';

@Entry
@Component
struct DownloadProgressBar {
  // 下载进度,初始值为 0
  @State progress: number = 0;
  // 下载状态提示信息
  @State status: string = '等待下载';

  // 模拟下载的函数
  startDownload() {
    // 模拟下载过程,使用 setInterval 定时更新进度
    let intervalId = setInterval(() = > {
      this.progress += 10;
      if (this.progress >= 100) {
        this.status = '下载完成';
        clearInterval(intervalId);
        prompt.showToast({ message: '下载已完成' });
      } else {
        this.status = `下载中,进度: ${this.progress}%`;
      }
    }, 1000);
  }

  build() {
    Column({ space: 20 }) {
      Text('下载进度条示例')
        .fontSize(20)
        .fontWeight(FontWeight.Bold);

      Progress({ value: this.progress, total: 100 })
        .width('90%')
        .height(20);

      Text(this.status)
        .fontSize(16);

      Button('开始下载')
        .width('60%')
        .height(40)
        .backgroundColor(Color.Blue)
        .fontColor(Color.White)
        .onClick(() = > {
          this.startDownload();
        });
    }
    .width('100%')
    .height('100%')
    .alignItems(HorizontalAlign.Center)
    .justifyContent(FlexAlign.Center);
  }
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    60

    文章

    2643

    浏览量

    44239
  • HarmonyOS
    +关注

    关注

    80

    文章

    2128

    浏览量

    33401
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙原生应用/元服务开发-发布进度条类型通知

    进度条通知也是常见的通知类型,主要应用于文件下载、事务处理进度显示。HarmonyOS提供了进度条模板,发布通知应用设置好进度条模板的属性值
    发表于 01-04 17:20

    关于进度条

    我用的labview8.6,初学者,在那能找到进度条啊!
    发表于 10-28 11:35

    进度条问题

    如何通过编程的方法改变进度条刻度的最大值?
    发表于 02-20 22:55

    请问怎么用进度条显示程序的进度

    怎么用进度条显示程序的进度
    发表于 12-24 10:02

    labview的进度条

    这是一个labview的进度条程序,比较好用
    发表于 08-04 14:30

    labview进度条

    我用labview2017做了一个文件解压和复制的vi,解压过程中不知道真实的解压进度,怎么才能做一个真实的进度条,要真是的,不是自己规定的,求助!!!
    发表于 04-26 09:10

    labview实现进度条

    进度条
    发表于 03-25 17:06

    怎么设置进度条

    RT!比如 我创建一个随意长度的进度条然后我知道一个文件的大小 当把这个文件里的数据读完后进度条也跟着完毕请问那位弄过?我搞了下随意创建 有问题有事候进度条会超出 边框那么一点点!
    发表于 08-22 04:35

    HarmonyOS实战——ProgressBar进度条组件基本使用

    鸿蒙专栏,从入门到实战系列】:https://bbs.elecfans.com/user/4697363/posts/1. ProgressBar进度条组件组件说明:常见app中,下载进度条
    发表于 09-22 23:31

    C#教程之弹出模式窗口显示进度条

    C#教程之弹出模式窗口显示进度条,很好的C#资料,快来学习吧。
    发表于 04-20 10:49 ?7次下载

    供开发鸿蒙应用使用的ButtonProgressBar下载按钮进度条

    该三方开源库从github fork过来,主要将底层接口调用的实现修改成鸿蒙接口的实现,将三方库鸿蒙化,供开发鸿蒙应用的开发者使用。 ButtonProgressBar一个下载按钮进度条
    发表于 03-18 14:37 ?1次下载

    将底层接口调用实现成鸿蒙接口的循环音乐进度条

    差异:由于鸿蒙的Path接口没有提供approximate方法,导致动画差值器中Path差值器无法使用 这个圆形进度条是为需要漂亮音乐进度条的音乐播放器设计和制造的。 限制 ScaleType 始终为 ScaleMode.CLI
    发表于 03-24 13:51 ?3次下载

    大彩串口屏控件教程15 - 圆形进度条控件应用

    大彩串口屏控件教程15-圆形进度条控件应用
    发表于 04-29 12:57 ?3次下载

    【AWTK使用经验】如何设计立体电池进度条

    AWTK是基于C语言开发的跨平台GUI框架。《AWTK使用经验》系列文章将介绍开发AWTK过程中一些常见问题与解决方案,例如:如何加载外部资源?如何设计自定义进度条?这些都会在系列文章进行解答
    的头像 发表于 04-18 08:25 ?816次阅读
    【AWTK使用经验】如何设计立体电池<b class='flag-5'>进度条</b>?

    HarmonyOS 5鸿蒙中的UIAbility详解(三)

    HarmonyOS 5鸿蒙中的UIAbility详解(三) ##鸿蒙开发能力 ##HarmonyOS
    的头像 发表于 06-14 22:32 ?103次阅读