【鸿蒙软件开发】进度条Progress

简介: 【鸿蒙软件开发】进度条Progress

前言


Progress是进度条显示组件,显示内容通常为某次目标操作的当前进度。具体用法请参考Progress。

Text是文本组件,通常用于展示用户的视图,如显示文章的文字。具体用法可参考Text。

Span只能作为Text组件的子组件显示文本内容。可以在一个Text内添加多个Span来显示一段信息,例如产品说明书、承诺书等。


一、进度条Progress


1.1 创建进度条

Progress通过调用接口来创建,接口调用形式如下:

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


该接口用于创建type样式的进度条,其中value用于设置初始进度值,total用于设置进度总长度,type决定Progress样式。

例如:

Progress({ value: 24, total: 100, type: ProgressType.Linear }) // 创建一个进度总长为100,初始进度值为24的线性进度条


ee1013151f764b79a0f56a0f293b7bc8.png

66900ec7e18d469ab415e7f1678a492a.png

1.2 进度条样式

进度条样式

Progress有5种可选类型,在创建时通过设置ProgressType枚举类型给type可选项指定Progress类型。其分别为:ProgressType.Linear(线性样式)、 ProgressType.Ring(环形无刻度样式)、ProgressType.ScaleRing(环形有刻度样式)、ProgressType.Eclipse(圆形样式)和ProgressType.Capsule(胶囊样式)。


ProgressType.Linear(线性样式)

线性样式进度条(默认类型)

说明

从API version9开始,组件高度大于宽度的时候自适应垂直显示,相等时仍然保持水平显示。

Progress({ value: 20, total: 100, type: ProgressType.Linear }).width(200).height(50)
Progress({ value: 20, total: 100, type: ProgressType.Linear }).width(50).height(200)


99f0809ca0ae4234a55e9e11af06dad0.png

ProgressType.Ring(环形无刻度样式)

环形无刻度样式进度条

// 从左往右,1号环形进度条,默认前景色为蓝色,默认strokeWidth进度条宽度为2.0vp
Progress({ value: 40, total: 150, type: ProgressType.Ring }).width(100).height(100)
// 从左往右,2号环形进度条
Progress({ value: 40, total: 150, type: ProgressType.Ring }).width(100).height(100)
    .color(Color.Grey)    // 进度条前景色为灰色
    .style({ strokeWidth: 15})    // 设置strokeWidth进度条宽度为15.0vp


328389f64b6244ca8ea6d55045c75ce9.png

其中:.style的strokeWidth参数为圆环的宽度

527e806fc16a4887b2842451233e1b1d.png

ProgressType.ScaleRing(环形有刻度样式)

环形有刻度样式进度条

Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
    .backgroundColor(Color.Black)
    .style({ scaleCount: 20, scaleWidth: 5 })    // 设置环形有刻度进度条总刻度数为20,刻度宽度为5vp
Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
    .backgroundColor(Color.Black)
    .style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 5 })    // 设置环形有刻度进度条宽度15,总刻度数为20,刻度宽度为5vp
Progress({ value: 20, total: 150, type: ProgressType.ScaleRing }).width(100).height(100)
    .backgroundColor(Color.Black)
    .style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 3 })    // 设置环形有刻度进度条宽度15,总刻度数为20,


ee49500fe6204ee0af4d0ab0b3596266.png

其中scaleCount参数为刻度的个数,scaleWidth为刻度的宽度

7b6e09ac6ba9415d9c29bc2451998626.png

ProgressType.Eclipse(圆形样式)

圆形样式进度条

// 从左往右,1号圆形进度条,默认前景色为蓝色
Progress({ value: 110, total: 150, type: ProgressType.Eclipse }).width(100).height(100)
// 从左往右,2号圆形进度条,指定前景色为灰色
Progress({ value: 20, total: 150, type: ProgressType.Eclipse }).color(Color.Grey).width(100).height(100)


8ca3dd4d42484800be08128658790a29.png

ac64c5f05fa34355a98f9d70f86e74b1.png

ProgressType.Capsule(胶囊样式)

胶囊样式进度条

说明

1、头尾两端圆弧处的进度展示效果与ProgressType.Eclipse样式相同;

2、中段处的进度展示效果为矩形状长条,与ProgressType.Linear线性样式相似;

3、组件高度大于宽度的时候自适应垂直显示。

Progress({ value: 10, total: 150, type: ProgressType.Capsule }).width(100).height(50)
Progress({ value: 20, total: 150, type: ProgressType.Capsule }).width(50).height(100).color(Color.Grey)
Progress({ value: 50, total: 150, type: ProgressType.Capsule }).width(50).height(100).backgroundColor(Color.Black)


044639dea6b143df8a4760a7a747762e.png

73ac49a2d96549b4bf7add091bcc266b.png


二、场景示例


更新当前进度值,如应用安装进度条。可通过点击Button增加progressValue,.value()属性将progressValue设置给Progress组件,进度条组件即会触发刷新,更新当前进度。

@Entry
@Component
struct ProgressCase1 { 
  @State progressValue: number = 0    // 设置进度条初始值为0
  build() {
    Column() {
      Column() {
        Progress({value:0, total:100, type:ProgressType.Capsule}).width(200).height(50)
          .style({strokeWidth:50}).value(this.progressValue)
        Row().width('100%').height(5)
        Button("进度条+5")
          .onClick(()=>{
            this.progressValue += 5
            if (this.progressValue > 100){
              this.progressValue = 0
            }
          })
      }
    }.width('100%').height('100%')
  }
}


8404cee8708e4731818909d4a7d28540.png

@State的作用为当该值更新时,通知对应的属性也去进行更新的作用


总结


本节课主要介绍了Progress组件的使用,他可以让你构建出好看的鸿蒙软件界面,让用户的等待不再无聊

相关文章
|
8月前
|
数据安全/隐私保护
【鸿蒙软件开发】文本输入(TextInput/TextArea)
【鸿蒙软件开发】文本输入(TextInput/TextArea)
1208 0
|
8月前
|
API 索引 数据处理
【鸿蒙软件开发】ArkTS基础组件之Select(下拉菜单)、Slider(滑动条)
【鸿蒙软件开发】ArkTS基础组件之Select(下拉菜单)、Slider(滑动条)
2134 0
【鸿蒙软件开发】ArkTS基础组件之Select(下拉菜单)、Slider(滑动条)
|
8月前
|
API 前端开发 Python
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
402 0
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
|
29天前
|
前端开发 UED
「Mac畅玩鸿蒙与硬件39」UI互动应用篇16 - 倒计时环形进度条
本篇将带你实现一个倒计时环形进度条应用。用户可以设置倒计时的时间,启动倒计时后,应用会动态显示一个随着时间递减的环形进度条,同时伴有数字倒计时显示。这是结合动画效果和时间管理的实用示例。
116 10
|
3月前
|
编译器 API 开发工具
揭秘鸿蒙软件开发:如何构建跨设备智能生态?一场颠覆传统,引领未来的技术革命等你来探索!
【10月更文挑战第20天】华为鸿蒙系统正逐步构建全新的智能生态,打破设备间界限,实现OS与硬件解绑及跨端共享。鸿蒙提供完整开发工具链,如DevEco Studio、方舟编译器等,降低开发难度,提高效率。通过示例代码展示,鸿蒙支持跨设备协同工作,适用于智能家居、智能出行等多领域,推动智能生态发展。
72 4
|
3月前
|
Java API 开发工具
揭秘鸿蒙软件开发:如何以一己之力,开启万物互联新纪元,重塑未来科技生态版图?
【10月更文挑战第20天】鸿蒙系统,华为推出的面向全场景的分布式操作系统,打破传统OS与硬件绑定,实现多端部署、生态共享。提供完整开发工具链,支持高效开发,开启万物互联新篇章。
49 3
|
8月前
|
IDE API 开发工具
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Progress组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Progress组件
205 2
|
8月前
|
容器 API
【鸿蒙软件开发】ArkTS容器组件之Badge
【鸿蒙软件开发】ArkTS容器组件之Badge
255 1
【鸿蒙软件开发】ArkTS容器组件之Badge
|
8月前
|
容器 索引 缓存
【鸿蒙软件开发】ArkUI容器组件之Grid(网格布局)
【鸿蒙软件开发】ArkUI容器组件之Grid(网格布局)
1031 0
【鸿蒙软件开发】ArkUI容器组件之Grid(网格布局)
|
8月前
|
容器 API UED
【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局)
【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局)
319 0
【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局)

热门文章

最新文章