鸿蒙界面开发——组件(9):进度条Progress 滑动条Slider

news2024/12/23 10:58:40

进度条 (Progress)

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

其中,value用于设置初始进度值,total用于设置进度总长度,type用于设置Progress样式。
Progress有5种可选类型,通过ProgressType可以设置进度条样式,ProgressType类型包括:

`ProgressType.Linear(线性样式)、
 ProgressType.Ring(环形无刻度样式)、
 ProgressType.ScaleRing(环形有刻度样式)、
 ProgressType.Eclipse(圆形样式)
 ProgressType.Capsule(胶囊样式)。`
  1. 线性样式进度条(默认类型)
    从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. 环形无刻度样式进度条
// 从左往右,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

在这里插入图片描述

  1. 环形有刻度样式进度条
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,总刻

在这里插入图片描述

  1. 圆形样式进度条
// 从左往右,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样式相同;
中段处的进度展示效果为矩形状长条,与ProgressType.Linear线性样式相似;
组件高度大于宽度的时候自适应垂直显示。

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).color(Color.Blue).background

在这里插入图片描述
拓展
在这里插入图片描述

Progress属性

.value(value: number)设置当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。非法数值不生效。
.color(value: ResourceColor | LinearGradient)
.backgroundColor(value: ResourceColor)
.style(value: ProgressStyleOptions | CapsuleStyleOptions | RingStyleOptions | LinearStyleOptions | ScaleRingStyleOptions | EclipseStyleOptions)设置组件的样式。

ProgressStyleOptions:

	strokeWidth	| Length	否	设置进度条宽度(不支持百分比设置)。默认值:4.0vp
	scaleCount	| number	否	设置环形进度条总刻度数。默认值:120
	scaleWidth	| Length	否	设置环形进度条刻度粗细(不支持百分比设置),刻度粗细大于进度条宽度时,为系统默认粗细。默认值:2.0vp
	enableSmoothEffect	| boolean	否	进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。默认值:true

可参考:here有很多有意思的效果实现

contentModifier(modifier:ContentModifier)定制progress内容区的方法。
privacySensitive(isPrivacySensitiveMode: Optional)设置隐私敏感。

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)
        .value(this.progressValue)//设置进度条的当前值,参数value表示初始值
        
        Row().width('100%').height(5)
        Button("进度条+5")
          .onClick(()=>{
            this.progressValue += 5 //更新进度条的值
            if (this.progressValue > 100){
              this.progressValue = 0
            }
          })
      }
    }.width('100%').height('100%')
  }
}

进度条Slider

在这里插入图片描述

Slider也叫可滑动进度条,可滑动修改值。例如修改音量、屏幕亮度等。——按钮与选择
进度条组件Progress,用于显示内容加载或操作处理等进度。——信息&展示

Slider(options?: SliderOptions)
  • value number 否 当前进度值。默认值:与参数min的取值一致。从API version 10开始,该参数支持$$双向绑定变量。
  • min number 否 设置最小值。默认值:0
  • max number 否 设置最大值。默认值:100
    说明:min >= max异常情况,min取默认值0,max取默认值100。value不在[min, max]范围之内,取min或者max,靠近min取min,靠近max取max。
  • step number 否 设置Slider滑动步长。默认值:1取值范围:[0.01, max - min]说明:若设置的step值小于0或大于max值时,则按默认值显示。
  • style SliderStyle 否 设置Slider的滑块与滑轨显示样式。默认值:SliderStyle.OutSet
    • OutSet 滑块在滑轨上。
    • InSet 滑块在滑轨内。
    • NONE 无滑块
  • direction Axis 否 设置滑动条滑动方向为水平或竖直方向。默认值:Axis.Horizontal
  • reverse boolean 否 设置滑动条取值范围是否反向,横向Slider默认为从左往右滑动,竖向Slider默认为从上往下滑动。默认值:false

Slider属性

支持除触摸热区以外的通用属性。

  1. blockColor(value: ResourceColor)设置滑块的颜色。
    当滑块形状设置为SliderBlockType.DEFAULT时,blockColor可设置默认圆形滑块颜色。
    当滑块形状设置为SliderBlockType.IMAGE时,滑块无填充,设置blockColor不生效。
    当滑块形状设置为SliderBlockType.SHAPE时,blockColor可设置自定义形状的填充颜色。

  2. trackColor(value: ResourceColor | LinearGradient)设置滑轨的背景颜色。

  3. selectedColor(value: ResourceColor)设置滑轨的已滑动部分颜色。

  4. showSteps(value: boolean) 设置当前是否显示步长刻度值。

  5. showTips(value: boolean, content?: ResourceStr)设置滑动时是否显示气泡提示。here

  6. trackThickness(value: Length)设置滑轨的粗细。设置为小于等于0的值时,取默认值。

  7. blockBorderColor 设置滑块描边颜色。

  8. blockBorderWidth

  9. stepColor 设置刻度颜色。

  10. trackBorderRadius设置底板圆角半径。

  11. selectedBorderRadius设置已滑动部分(高亮)圆角半径。

  12. blockSize(value: SizeOptions) 设置滑块大小。
    默认值:当参数style的值设置为SliderStyle.OutSet时为{width: 16, height: 16},当参数style的值设置为SliderStyle.InSet时为{width: 12, height: 12},当参数style的值设置为SliderStyle.NONE时为,此字段不生效。
    当设置的blockSize的宽高值不相等时,取较小值的尺寸,当设置的宽高值中有一个或两个都小于等于0的时候,取默认值。

  13. blockStyle(value: SliderBlockStyle)设置滑块形状参数。
    SliderBlockType 对象说明:

  • type SliderBlockType 是 设置滑块形状。默认值:SliderBlockType.DEFAULT,使用圆形滑块。
    • SliderBlockType枚举说明:
    • DEFAULT 使用默认滑块(圆形)。
    • IMAGE 使用图片资源作为滑块。
    • SHAPE 使用自定义形状作为滑块。
  • image ResourceStr 否 设置滑块图片资源。图片显示区域大小由blockSize属性控制,请勿输入尺寸过大的图片。
  • shape Circle | Ellipse | Path | Rect 否 设置滑块使用的自定义形状。
  1. stepSize 设置刻度大小(直径)。当值为0时,刻度点不显示,当值小于0时,取默认值。

  2. sliderInteractionMode 设置用户与滑动条组件交互方式。默认值:SliderInteraction.SLIDE_AND_CLICK。

  3. minResponsiveDistance设置滑动响应的最小距离。

  4. contentModifier定制Slider内容区的方法。

  5. slideRange设置有效滑动区间。

Slider事件

onChange(callback: (value: number, mode: SliderChangeMode) => void)

Slider拖动或点击时触发事件回调。

Begin和End状态当手势点击时都会触发,Moving和Click状态当value值发生变化时触发。

当连贯动作为拖动动作时,不触发Click状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2167898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

必应bing搜索广告如何开户?投放需要多少钱?

网络营销已成为企业增长不可或缺的一部分,为了帮助企业更高效地触达目标客户,云衔科技携手必应Bing搜索引擎,提供专业、便捷的广告开户与代运营服务。无论您是希望扩大品牌影响力,还是提升产品销量,选择云衔科技&#…

阻塞型IO与非阻塞型IO

阻塞IO与非阻塞IO 一.IO模型 IO的本质是基于操作系统接口来控制底层的硬件之间数据传输,并且在操作系统中实现了多种不同的IO方式(模型),比较常见的有下列三种 阻塞型IO模型非阻塞型IO模型多路复用IO模型(重点!重点!重点!) 二…

KVM 安装 Windows11

在 KVM 安装 Windows 比安装 Ubuntu 会复杂一些,去微软官网下载 Win11,同时要下载 Virtio 可以从 Fedora 下载 (https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/)。 安装Window 命令行输入以下命令&#xf…

uniapp数据缓存

利用uniapp做开发时,缓存数据是及其重要的,下面是同步缓存和异步缓存的使用 同步缓存 在执行同步缓存时会阻塞其他代码的执行 ① uni.setStorageSync(key, data) 设置缓存,如: uni.setStorageSync(name, 张三) ② uni.getSt…

Python 课程21-Django

前言 在当今互联网时代,Web开发已成为一项必备技能。而Python作为一门简洁、高效的编程语言,其Web框架Django以其强大的功能和快速开发的特点,受到了广大开发者的青睐。如果你想深入学习Django,构建自己的Web应用,那么…

呼吸自救防护器的使用方式

呼吸自救防护器是一种用于在紧急情况下提供呼吸保护的设备,通常用于矿井、化工厂、火灾等环境。当出现缺氧、有毒有害气体泄漏或烟雾等紧急情况时,呼吸自救防护器可以提供氧气或过滤空气,帮助使用者在短时间内安全呼吸,逃离危险区…

十大常用加密软件排行榜|2024年好用的加密软件推荐,企业必备!

在信息安全日益受到重视的当今,选择合适的加密软件对于企业保护敏感数据至关重要。以下是2024年十大常用加密软件排行榜,助您提升数据安全性。 Ping32 Ping32是一款功能强大的加密软件,支持多种文件格式加密,用户界面友好&#xf…

【机器学习】 Flux.jl 求解 XOR 分类问题的神经网络模型

Flux.jl 搭建神经网络基本流程 #mermaid-svg-JuKPmnLqTqDhEhKf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JuKPmnLqTqDhEhKf .error-icon{fill:#552222;}#mermaid-svg-JuKPmnLqTqDhEhKf .error-text{fill:#5522…

【前端】35道JavaScript进阶问题

来源: javascript-questions/zh-CN/README-zh_CN.md at master lydiahallie/javascript-questions GitHub 记录一些有趣的题。 1 输出是? const shape {radius: 10,diameter() {return this.radius * 2},perimeter: () > 2 * Math.PI * this.rad…

[单master节点k8s部署]26.Istio流量管理(二)

bookinfo微服务 这个bookinfo微服务由四个微服务构成: 1)productpage 这个微服务会调用 details 和 reviews 两个微服务,用来生成页面; 2)details 这个微服务中包含了书籍的信息; 3)reviews …

Scikit-LearnTensorFlow机器学习实用指南(三):一个完整的机器学习项目【下】

机器学习实用指南(三):一个完整的机器学习项目【下】 作者:LeonG 本文参考自:《Hands-On Machine Learning with Scikit-Learn & TensorFlow 机器学习实用指南》,感谢中文AI社区ApacheCN提供翻译。 本文全部代码和数据集保存在…

TypeError: load() missing 1 required positional argument: ‘Loader‘

标题TypeError: load() missing 1 required positional argument: ‘Loader’ 源码: 处理后: 顺利通过,由于yaml版本导致的问题

Alertmanager 路由匹配

Alertmanager主要负责对Prometheus产生的告警进行统一处理,因此在Alertmanager配置中一般会包含以下几个主要部分: 全局配置(global):用于定义一些全局的公共参数,如全局的SMTP配置,Slack配置等…

day-61 外观数列

思路 每次对字符串进行遍历即可,用一个Integer统计相邻的相同字符个数,如果当前字符与后面邻接的字符相同,num;如果不同,则将""nums.charAt(j)拼接到字符串中 解题过程 当n1时,可以直接返回,不为…

【机器学习导引】ch3-线性模型

线性回归 梯度 在数学中,对于函数 f ( x 1 , … , x m ) f(x_1, \ldots, x_m) f(x1​,…,xm​) 在点 a ( a 1 , … , a m ) a (a_1, \ldots, a_m) a(a1​,…,am​) 处的梯度被定义为: ∇ f ( a ) ( ∂ f ∂ x 1 ( a ) , … , ∂ f ∂ x m ( a ) )…

排序题目:对角线遍历 II

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:对角线遍历 II 出处:1424. 对角线遍历 II 难度 6 级 题目描述 要求 给定一个二维整数数组 nums \texttt{nums} nums,将 …

vue3.0 + element plus 全局自定义指令:select滚动分页

需求:项目里面下拉框数据较多 ,一次性请求数据,体验差,效果就是滚动进行分页。 看到这个需求的时候,我第一反应就是封装成自定义指令,这样回头用的时候,直接调用就可以了。 第一步 第二步&…

eHR软件的价格一般是多少?

在人力资源数字化转型的大潮中,越来越多的企业开始关注eHR(电子人力资源管理)软件的采购问题。eHR软件价格并不是一个简单的数字,而是受多种因素影响,具有较大波动性。那么,eHR软件的价格一般是多少呢&…

侧边菜单的展开和折叠

通过按钮控制侧边栏的展开和折叠通过窗口宽度的变化控制侧边栏的展开和折叠&#xff08;小于768px,自动折叠&#xff09; 通过按钮控制展开 通过按钮控制折叠 切换到手机模式自动折叠 环境准备&#xff1a;Vue3Element-UI Plus <script setup> import {onMounted, r…

基于SpringBoot + Vue的Gucci进销存系统

文章目录 前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S 四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论 五、项目代码参考六、数据库代码参考七、项目论文示例结语 前言 &#x1f49b;博主介绍&a…