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

文章目录

  • 前言
  • 一、进度条Progress
    • 1.1 创建进度条
    • 1.2 进度条样式
      • 进度条样式
      • ProgressType.Linear(线性样式)
      • ProgressType.Ring(环形无刻度样式)
      • ProgressType.ScaleRing(环形有刻度样式)
      • ProgressType.Eclipse(圆形样式)
      • ProgressType.Capsule(胶囊样式)
  • 二、场景示例
  • 总结


前言

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的线性进度条

在这里插入图片描述

在这里插入图片描述

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)

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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,

在这里插入图片描述

其中scaleCount参数为刻度的个数,scaleWidth为刻度的宽度
在这里插入图片描述

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)

在这里插入图片描述

在这里插入图片描述

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)

在这里插入图片描述

在这里插入图片描述

二、场景示例

更新当前进度值,如应用安装进度条。可通过点击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%')
  }
}

在这里插入图片描述

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


总结

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


http://www.niftyadmin.cn/n/5111890.html

相关文章

《大数据面试通关》(第十四讲)——10 大业务场景 500 个离线实时指标

文章目录 一、指标简介 - 离线指标 - 实时指标二、场景介绍抖音业务 - 离线指标 - 实时指标微信业务 - 离线指标 - 实时指标电商业务 - 离线指标 - 实时指标音乐业务 - 离线指标 - 实时指标物流业务 - 离线指标 - 实时指标银行业务 - 离线指标 - 实时指标美团业务 - 离线指标 -…

ARM处理器中的寄存器

ARM处理器中的寄存器可分为通用寄存器和专用寄存器两种,寄存器R0-R12属于通用寄存器,除了FIQ工作模式,在其他工作模式下这些寄存器都是公用的,共享的;R0-R3 通常用来传递函数参数,R4-R11用来保存程序运算的…

在 Python 中执行 Shell 命令并获取输出

在本文中,我们将学习如何借助 os.system() 从 Python 脚本执行 cmd 命令。 我们还将学习如何借助 Python 中的 subprocess 模块以更简单的方式从脚本执行 cmd 命令。 从 Python 脚本执行 CMD 命令并使用 os.system() 获取输出 我们出于不同目的在命令提示符或任何其…

JIT耗时优化

优质博文:IT-BLOG-CN 一、背景 业务流量突增,机器直接接入大量流量QPS2000,JIT和GC会消耗太多CPU资源,导致1-2分钟时间内的请求超时导致异常,因此采用流量预热的方式,让机器逐步接入流量,需要预…

Windows快速安装pandora-chatgpt

如果你没有python环境,请安装python3.7的版本,如果你安装了请安装3.7以上,包括pip这里提供下载地址3.7.2版本为例: https://www.python.org/ftp/python/3.7.2/python-3.7.2rc1-amd64.exe 有些时候用不了官网的镜像安装模块就用阿里…

怎样修改ESP32的CPU主频

ESP32的主频默认设置为160mhz,但ESP32最高可以跑到240mhz, 修改方法: idf.py menuconfig --> Component config --> ESP System Settings --> CPU frequency 可以看到三个选项,80,160, 240&…

shell的if-else判断

if-else笔记 简单if结构if/else结构if/elif/else 结构if/else使用注意事项 if判断是shell编程中使用频率最高的语法结构 简单if结构 最简单的if执行结构如下所示:if expression #expression 表示测试条件 thencommand #满足expression后要执行的命令command... f1使用…

神经网络的不同类型的层

神经网络可以包含多个不同类型的层,每种层都具有不同的特点和应用场景。以下是常见的神经网络层的分类及其详细特点和应用场景: 1. 输入层(Input Layer): 特点:输入层通常不包含任何权重或激活函数&#…