首页 > 其他分享 >鸿蒙UI系统组件06——进度条(Progress)

鸿蒙UI系统组件06——进度条(Progress)

时间:2024-07-21 21:53:47浏览次数:14  
标签:06 进度条 value UI ProgressType Progress 100 type

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下面名片,关注公众号。

1、概述

Progress是进度条显示组件,显示内容通常为某次目标操作的当前进度。

2、创建进度条

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

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

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

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

图片

3、设置进度条样式

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

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

  • 从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)

图片

  • 环形无刻度样式进度条

// 从左往右,1号环形进度条,默认前景色为蓝色,默认strokeWidth进度条宽度为2.0vpProgress({ 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

图片

  • 环形有刻度样式进度条

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

图片

  • 圆形样式进度条

// 从左往右,1号圆形进度条,默认前景色为蓝色Progress({ value: 10, 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)

图片

  • 胶囊样式进度条

说明

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)

图片

4、Demo

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

图片

@Entry@Componentstruct 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%')  }}

标签:06,进度条,value,UI,ProgressType,Progress,100,type
From: https://blog.csdn.net/harmonyClassRoom/article/details/140594637

相关文章

  • 解决Element UI 表格组件懒加载数据刷新问题
    一、问题描述elementui的table组件设置成懒加载时,遇到数据表格需要更新、删除等操作,子节点不会自动更新。二、解决思路刷新数据,就是重新调用load(),通过map记录已展开的节点,需要刷新数据时,取出对应treeNode,调用load()进行数据刷新。三、代码实现(VUE)exportdefault{data(......
  • Java基础06:变量、常量、作用域
    1.变量Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:typevarName=value,varName2=value2;//数据类型变......
  • IMGUI快速入门
    资源大全官方资源源码+例子:ocornut/imgui:DearImGui:Bloat-freeGraphicalUserinterfaceforC++withminimaldependencies(github.com)python绑定:pyimgui/pyimgui:Cython-basedPythonbindingsfordearimgui(github.com)调试IMGUI自身:调试工具·ocornut/imgui......
  • 自动化测试的艺术:Xcode中GUI测试的全面指南
    自动化测试的艺术:Xcode中GUI测试的全面指南在软件开发过程中,图形用户界面(GUI)测试是确保应用质量和用户体验的关键环节。Xcode,作为苹果的官方集成开发环境(IDE),提供了一套强大的工具来支持iOS和macOS应用的GUI自动化测试。本文将详细介绍Xcode如何支持GUI自动化测试,并提供实际......
  • Loj P10064 黑暗城堡 题解 最短路径树记数
    这道题是一道最短路径树问题。首先,什么是最短路径树呢?定义一个图的最短路径树表示一个图上的生成树,且根节点到图上任一点的距离等于原图上两者之间的距离。而不难发现,题目其实是在求图上最短路径树记数。首先,建出最短路径树。枚举每条边,判断边两个端点到根的距离之差是否为......
  • SwiftUI中全局EnvironmentObject的使用和注意事项,实现多界面共享数据
    SwiftUI的@EnvironmentObject是一个强大的工具,它允许你在多个视图之间共享数据(使用一个可观察对象)。当你有一个复杂的视图层次结构,并且需要在没有直接连接的视图之间共享相同的可观察对象时,它特别有用。创建ObservableObject协议类要使用环境对象,首先需要创建一个符合Obse......
  • swiftui中使用scaleEffect和rotationEffect实现缩放和旋转效果
    在SwiftUI中,你可以使用.scaleEffect()和.rotationEffect()来实现缩放和旋转动画,缩放和旋转的内容可以是图片,文字等view视图。scaleEffect可以实现缩放效果,配合动画可以实现好看的过度效果,其中的参数是缩放的倍数,1表示原本大小,大于1表示放大,小于1表示缩小。示例代码:Text("He......
  • ComfyUI进阶:Comfyroll插件 (六)
    ComfyUI进阶:Comfyroll插件(六)前言:学习ComfyUI是一场持久战,而Comfyroll是一款功能强大的自定义节点集合,专为ComfyUI用户打造,旨在提供更加丰富和专业的图像生成与编辑工具。借助这些节点,用户可以在静态图像的精细调整和动态动画的复杂构建方面进行深入探索。Comfyroll的节点设......
  • hexo fluid主题折腾
    如何下载fluid主题hexo5.0以上的版本,直接npm安装:npminstall--savehexo-theme-fluid安装好之后,在博客目录下创建_config.fluid.yml,将主题_config.yml的内容复制进去。以后如果修改任何主题配置,都直接修改_config.fluid.yml就好,因为它的配置优先级是高于原_config.yml的。......
  • Debian12 AMD 显卡 7900XT 安装使用 stable-diffusion-webui 笔记
    简介由于AMD官方没有提供Debian12的驱动和ROCM,只好安装Ubuntu20.04的驱动和ROCM,必要软件git和python3-venv。添加i386仓库sudodpkg--add-architecturei386&&\sudoaptupgrade-y&&\aptupgrade-y下载驱动安装程序到AMD官网下载Ubuntu20.04驱动......