news 2026/4/27 12:46:31

HarmonyOS 6 DataPanel组件使用示例文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 6 DataPanel组件使用示例文档

文章目录

    • 组件概述
    • 核心 API 与参数
      • 1. 组件构造参数
      • 2. 关键枚举
      • 3. 基础样式属性
    • 示例代码功能说明
    • 代码逐段解析
      • 1. 数据定义
      • 2. 布局容器
      • 3. 单段环形数据面板(核心)
      • 4. 多段环形数据面板
      • 5. 线性数据面板
    • 运行效果
    • 总结

组件概述

DataPanel(数据面板组件)是 HarmonyOS 6 提供的可视化数据展示组件,支持环形(Circle)线性(Line)两种展示类型,可灵活呈现单段/多段数据占比、进度等信息,广泛应用于系统状态展示、存储使用率、版本进度等场景。

核心 API 与参数

1. 组件构造参数

参数名类型必填说明
valuesnumber[]数据数组:
- 单段数据:数组长度为1(如[30]),表示单一占比;
- 多段数据:数组长度>1(如[50,12,8,5]),表示多维度占比总和
maxnumber数据最大值(通常设为100表示百分比,也可自定义业务最大值)
typeDataPanelType展示类型:
-DataPanelType.Circle:环形展示;
-DataPanelType.Line:线性展示(注:官方文档中LinearLine为同一类型,API 中可互通)

2. 关键枚举

枚举值说明适用场景
DataPanelType.Circle环形数据面板占比类数据(如使用率、完成率)
DataPanelType.Line线性数据面板多段趋势/分段进度(如多节点完成状态)

3. 基础样式属性

属性名类型说明
width/heightnumber组件宽高:环形建议设为正方形(如168x168),线性建议宽远大于高(如300x20)
position{x: number, y: number}绝对定位:用于调整辅助文本(如%)的位置

示例代码功能说明

示例实现三类 DataPanel 展示效果:

  1. 单段环形数据面板:展示30%的占比数据,叠加版本号文本;
  2. 多段环形数据面板:展示多维度数据总和占比(50+12+8+5=75%),叠加存储使用率文本;
  3. 线性数据面板:展示9段均分数据(每段10%)的线性进度条。

代码逐段解析

1. 数据定义

public valueArr: number[] = [10, 10, 10, 10, 10, 10, 10, 10, 10]
  • 定义线性数据面板的数据源,9个10%的分段数据,总和90%(未占满100%,剩余10%为空白);
  • 使用public修饰,保证组件内可直接调用。

2. 布局容器

build() { Column({ space: 5 }) { // 环形数据面板行容器 Row() { ... }.margin({ bottom: 59 }) // 线性数据面板 DataPanel(...) }.width('100%').margin({ top: 5 }) }
  • 整体采用Column纵向布局,环形面板与线性面板间距5vp;
  • Row容器承载两个环形面板,横向排列,右侧间距44vp。

3. 单段环形数据面板(核心)

Stack() { // 单段环形数据面板 DataPanel({ values: [30], max: 100, type: DataPanelType.Circle }).width(168).height(168) Column() { Text('30').fontSize(35).fontColor('#182431') Text('1.0.0').fontSize(9.33).lineHeight(12.83).fontWeight(500).opacity(0.6) } Text('%') .fontSize(9.33) .lineHeight(12.83) .fontWeight(500) .opacity(0.6) .position({ x: 104.42, y: 78.17 }) }.margin({ right: 44 })

关键说明

  • Stack堆叠容器:实现“环形面板 + 中心文本 + 百分比符号”的叠加效果;
  • DataPanel配置:values: [30]表示30%占比,max: 100为百分比基数,Circle类型渲染环形;
  • 中心文本:展示核心数值“30”和版本号“1.0.0”,通过字体大小/透明度区分主次;
  • 绝对定位:%符号通过position精准定位到环形右侧,提升视觉完整性。

4. 多段环形数据面板

Stack() { DataPanel({ values: [50, 12, 8, 5], max: 100, type: DataPanelType.Circle }).width(168).height(168) Column() { Text('75').fontSize(35).fontColor('#182431') Text('已使用98GB/128GB').fontSize(8.17).lineHeight(11.08).fontWeight(500).opacity(0.6) } Text('%') .fontSize(9.33) .lineHeight(12.83) .fontWeight(500) .opacity(0.6) .position({ x: 104.42, y: 78.17 }) }

关键说明

  • values: [50,12,8,5]:4段数据总和75,对应中心文本“75%”;
  • 环形自动按数据占比分割为4个颜色段(使用系统默认配色);
  • 中心文本替换为存储使用率描述(已使用98GB/128GB),贴合实际业务场景。

5. 线性数据面板

DataPanel({ values: this.valueArr, max: 100, type: DataPanelType.Line }).width(300).height(20)

关键说明

  • type: DataPanelType.Line:渲染线性进度条,宽300vp、高20vp符合线性展示视觉习惯;
  • values: this.valueArr:9段10%的数据,线性面板会分割为9个等宽的颜色段;
  • 无叠加文本:纯线性展示,适用于多节点状态、分段进度等场景。

运行效果

组件类型展示效果
单段环形168x168 环形面板,30%区域填充系统默认色,中心显示“30”+“1.0.0”,右侧显示“%”;
多段环形168x168 环形面板,按50/12/8/5的占比分割为4个颜色段,中心显示“75”+“已使用98GB/128GB”,右侧显示“%”;
线性面板300x20 线性进度条,均分9个10%的颜色段,总占比90%,剩余10%为空白;

运行效果如图:

总结

  1. 环形面板布局

    • 建议使用Stack堆叠容器叠加文本,实现“数据面板+核心数值”的复合展示;
    • 环形宽高需设为相同值(正方形),否则会拉伸变形。
  2. 数据逻辑

    • values数组总和可小于/等于max:小于时剩余部分为空白,等于时填满整个面板;
    • 多段环形的颜色由系统自动分配,如需自定义可通过colors属性扩展(示例未使用)。
  3. 文本定位

    • 辅助文本(如%)建议使用position绝对定位,需根据环形尺寸微调x/y值,保证视觉对齐;
    • 中心文本建议通过Column居中,字体大小建议为环形宽度的1/5~1/4(如168宽度对应35字号)。
  4. 兼容性说明

    • 支持设备:Phone/平板/PC/智慧屏(API 7+);
    • 类型兼容:DataPanelType.LinearDataPanelType.Line为同一类型,可互换使用;
    • 样式扩展:示例未使用strokeWidth(环形宽度/线性高度)、colors(自定义颜色)等属性,可参考官方文档扩展。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 12:44:23

APKMirror安卓应用:如何安全高效获取最新APK文件的完整指南

APKMirror安卓应用:如何安全高效获取最新APK文件的完整指南 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 你是否曾经遇到过这样的问题:想要下载某个安卓应用的最新版本,但在官方应用商店里却找…

作者头像 李华
网站建设 2026/4/27 12:41:21

LobeChat零基础部署教程:5分钟搭建私人ChatGPT聊天机器人

LobeChat零基础部署教程:5分钟搭建私人ChatGPT聊天机器人 想拥有一个随时待命、功能强大的私人AI助手吗?厌倦了在公共聊天界面排队等待,或者担心对话隐私?今天,我将带你从零开始,用短短5分钟时间&#xff…

作者头像 李华
网站建设 2026/4/27 12:39:09

用FPGA玩转FM广播:手把手教你用DDS和Quartus 17.1实现5MHz载波调制

用FPGA打造微型FM电台:从DDS原理到Quartus工程实战 记得大学时第一次拆解老式收音机,看到密密麻麻的电路板却找不到"声音"藏在哪里。如今用FPGAVerilog,我们可以在数字世界里重建整个FM广播系统——本文将带你用Altera Quartus 17.…

作者头像 李华
网站建设 2026/4/27 12:37:51

梯度下降算法原理与工程实践指南

1. 梯度下降算法基础解析 梯度下降是机器学习中最核心的优化算法之一,它的本质是通过迭代方式寻找目标函数的极小值点。想象你站在山坡上蒙着眼睛,每次用脚试探周围最陡的下坡方向,然后小步移动——这就是梯度下降的直观理解。 在数学表达上…

作者头像 李华