【Harmony OS】组件

目录

组件概述

组件常用属性

系统内置组件

Text

TextArea 多行文本输入框组件

TextInput 文本输入框

Button

Image 图片组件,支持本地图片和网络图片

Radio 单选框

Checkbox 复选框

Blank 空白填充组件

 Divider 分隔符

PatternLock 图案密码锁组件

Progress 进度条组件

QRCode 二维码组件

 Rating 评分组件

RichText 富文本组件

Search 搜索框组件

Select 下拉选择菜单

Slider 滑动条组件

Stepper与StepperItem 步骤导航器组件

TextClock  当前系统时间显示,支持不同时区的时间显示,最高精确到秒级

TextTimer 计时器组件

Toggle 组件提供复选框样式、状态按钮样式及开关样式

DataPanel 数据面板,主要支持两类数据面板

Gauge 数据量规图表

ImageAnimator 动画组件,来实现逐帧播放图片

Marquee 跑马灯组件

系统图表库


组件概述

组件需要放置到组件容器中

组件容器也称为布局

基于ArkTS的HarmonyOS应用开发中,系统提供了丰富的 组件 ,如Text、TextArea、Button、Image、Slider等
系统也提供了很多 容器组件 ,如Row、Column、Flex、Navigator、List、Tabs等
尽管这里把组件分为容器组件和普通组件,但实际上有的普通组件也是可以容纳其它的组件,因此容器组件和普通组件实际上没有明确的界限, 都是组件
在应用界面中,实例化组件的一般语法为:
组件名([参数]){
//参数视组件而定,是可选的
//子组件,如果没有子组件,此部分和花括号都可以省略
}.链式调用组件属性方法( ) //组件属性方法一般也有参数
Row() {
Image($r('app.media.loading')) 
.width(20).height(20).margin({ left: 12 })
Text('加载中...')
.fontSize(12).fontColor(0xFFFFFF)
}.alignItems( VerticalAlign.Center )

@Entry // 入口组件装饰器
@Component // 组件装饰器
struct Index { // 定义组件
build() { // 生成器函数
Column() { // 列容器组件
Image($r('app.media.icon')) // 图片组件
.height(100).width(100) // 设置高、宽属性
.margin({ top: 150 }) // 设置边距
TextInput().width("80%").height(50).margin(10) // 输入框组件
TextInput().width("80%").height(50).margin(10)
.type(InputType.Password)
Button(" 登录 ") // 按钮组件
.width("60%")
.height(50)
.margin(20)
}.height("100%") // 设置 Column 的高度
.width("100%") // 设置 Column 的宽度
}
}

组件常用属性

组件属性可以分为 通用属性 自定义属性
通用属性 包括 尺寸、位置、背景、文本样式 等等
尺寸是用来设置组件大小的,如宽、高等。一般组件都具有的尺寸属性及说明如表
名称
说明
取值举例
width
宽度,缺省时使用元素自身内容需要的宽度,值为Length类型
Button("您好").width(100) .height(50)
height
高度,缺省时使用元素自身内容需要的高度,值为Length类型
Button("您好").width('100%'). height('30px')
size
大小,可以同时设置宽高,值为JSON对象,内部包含宽度和高度,宽高类型为Length类型
{width?:Length,height?:Length}
padding
内边距,可以同时设置四个方向内边距,也可设置指定方向的内边距,设置四个方向时,采用JSON对象参数,内包含四个方向的值都是Length类型,当设置一个值时表示同时设置四个方向内边距一致
{top?:Length,right?:Length,bottom ?:Length,left?:Length}或 Length
margin
外边距,方式同上
同上
constraintSize
设置约束尺寸,对组件布局进行尺寸范围限制,包括宽度和高度的最小值和最大值
{minWidth?:Length,maxWidth?:Length,minHeight?:Length,maxHeig
ht?:Length}
layoutWeight
组件在布局中的大小权重,在容器尺寸确定时,元素与兄弟结点主轴布局尺寸按照权重进行分配,默认自适应占满剩余空间。该属性仅在Row/Column/Flex有
值为number类型数值

在描述尺寸时一般会用到 Length 类型值,Length类型是系统定义的类型,它可以是字符串(string)、数值(number)和资源(Resource)。
在使用字符串(string)表示文字大小时,可以显式指定像素单位,如'30px'、'30vp'等,也可设置百分比字符串,如'80%'。
在使用数值(number)表示尺寸大小时,可以直接使用数值,其默认单位是vp,如30。
资源(Resource)是使用引入资源的方式,使用系统资源或者应用资源中的尺寸。

位置属性 顾名思义是设置组件的位置关系的,如居中、坐标、偏移量等。
一般组件都具有的位置属性及说明如表
名称
说明
取值举例
align
组件内容的对齐方式,只有当设置的宽、高超过元素内
容大小时才有效,值为类型
Text('您好')
.size({width:100,height:100 })
.align(Alignment.End) 另外,
Alignment还有Top、TopStart、Start
、Center、Buttom等枚举值
direction
设置元素水平方向的布局, 可选值为Direction枚举类
有三个枚举值Ltr表示元素从左到右布局
Rtl表示元素从右到左布局Auto表示系
统默认布局方向
position
位置,表示组件在父容器中的位置。默认以组件的左上
角为基准
{x:Length,y:Length}
markAnchor
组件位置定位时的锚点,以元素顶部起点作为基准点进 行偏移
{x:Length,y:Length}默认值是(0,0)
offset
相对布局完成位置坐标偏移量,设置该属性,不影响父 容器布局,仅在绘制时进行位置调整。
{x:Length,y:Length}默认值是(0,0)

文本样式 主要是设置组件内显示的文本的颜色、大小、字体等,关于文本设置的主要属性如表
名称
说明
取值举例
fontColor
文本颜色,值为Color类型,可以直接用颜色值,也可以采用系统中的颜色
Text('您好')
.size({width:100,height:100 })
.fontColor(0xFF0000)
fontSize
字体大小,值为Length类型,当为数值时默认单位为fp
Text('您好')
.size({width:100,height:100 })
.fontSize(30)
fontStyle
字体样式,值为类型
Text('您好')
.fontStyle(FontStyle.Normal)
fontWeight
字体粗细,值为number或FontWeight 以取100~900 枚举类型,数值可 中的整百数值, 默认为400 ,值越大字越粗,FontWeight提供了枚举类型
Text(this.message).fontSize(50)
.fontWeight(FontWeight.Bold)
fontFamily
字体,值为字符串类型。可以设置一种字体,也可以设置多
种候选字体,以‘,’分割,按顺序选择显示的字体
Text(this.message).fontSize(50)
.fontFamily(‘Arial,sans-serif’)

其它属性
属性都可以通过链式调用方式设置
关于组件属性的分类说明如表
名称
主要用途说明
显示样式方面
组件的大小、位置、背景、透明度、边框、颜色渐变等
布局约束方面
宽高比、显示优先级、Flex约束、栅格间距等
显示控制方面
显示隐藏控制、禁用控制、增加浮层、Z序控制(层控制)等
图形图像处理方面
图形变换(旋转、平移、缩放、矩阵变换),图像效果(模糊 、阴影、灰度、高光、饱和度、对比度、反转、颜色叠加、色相旋转、裁剪、遮盖等)

系统内置组件

Text

显示文本的组件,可以包含Span子组件
textAlign :设置文本在水平方向的对齐方式
textOverflow :设置文本超长时的显示方式,默认值 TextOverflow.Clip
maxLines :设置文本的最大行数,默认值是 Infinity
lineHeight :设置文本的行高,设置值不大于 0 时,不限制文本行高,自适应字体大小,Length number 类型时单位为 fp
decoration :设置文本装饰线样式及其颜色
letterSpacing :设置文本字符间距
minFontSize :设置文本最小显示字号,需要配合 maxFontSize
maxline 或布局大小限制使用,单独设置不生效
maxFontSize :设置文本最大显示字号,需要配合 minFontSize
maxline 或布局大小限制使用,单独设置不生效
textCase :设置文本大小写,默认值是 TextCase.Normal
copyOption :支持设置文本可复制、粘贴,默认值 CopyOptions.None

TextArea 多行文本输入框组件

TextArea是多行文本输入框组件,当输入的文本内容超过组件宽度时会自动换行显示:
placeholderColor :设置 placeholder 文本颜色。
placeholderFont :设置 placeholder 文本样式。
textAlign :设置文本在输入框中的水平对齐式。
caretColor :设置输入框光标颜色。
inputFilter :通过正则表达式设置输入过滤器。匹配表达式的输入允许显示,不匹配的输入将被过滤。仅支持单个字符匹配,不支持字符串匹配。
copyOption :设置输入的文本是否可复制。
TextArea({
//设置无输入时的提示文本
placeholder: '寒雨连江夜入吴,\n平明送客楚山
孤。\n洛阳亲友如相问,\n一片冰心在玉壶。'
})
.placeholderFont({ size: 24, weight: 400 })
.width(330)
.margin(20)
.fontSize(16)
.fontColor('#182431')
.maxLines(10)
.backgroundColor('#F5F5F5')

TextInput 文本输入框

密码输入框
TextInput({ placeholder: '请输入密码...' })
.fontSize(24)
.type(InputType.Password) //密码类型
.maxLength(16) //最大输入字符数
.showPasswordIcon(true) 
//输入框末尾的图标显示
文本输入框:
type :设置输入框类型,默认值是 InputType.Normal ,密码框为InputType.Password
placeholderColor :设置 placeholder 文本颜色
placeholderFont :设置 placeholder 文本样式
caretColor :设置输入框光标颜色
maxLength :设置文本的最大输入字符数
showPasswordIcon(true) :输入框末尾的图标显示

Button

Button('默认')
Button('普通型',
{ type: ButtonType.Normal}).width(90)
Button('胶囊型',
{ type: ButtonType.Capsule }).width(90)
Button('圆型',
{ type: ButtonType.Circle}).width(90)
Button('自定义弧度',{ type: ButtonType.Normal, 
stateEffect: true })
.borderRadius(10).width(90)
Button({type: ButtonType.Capsule, stateEffect: true }) {
Row(){
LoadingProgress().width(28).height(28)
.margin({ left: 12 }).color(0xFFFFFF)
Text('06').fontSize(20).fontColor(0xFFFFFF)
.margin({ left: 5, right: 12 })
}.alignItems(VerticalAlign.Center)
.width(90).height(40)
}

Image 图片组件,支持本地图片和网络图片

//从media中加载
Image($r('app.media.icon1'))
//从rawfile中加载
Image($rawfile('icon2.png'))
//从网络加载
Image('https://www.xiyou.edu.cn/_mediaf
ile/xupt/2017/10/16/3lwtsqiafs.jpg')

Radio 单选框

单选框,同group的Radio只能选中一个
Row({ space: 5 }) {
Radio({ value: 'Radio1', group: 'radioGroup' })
.checked(true)//默认不选中
.height(35)
.width(35)
.radioStyle({
checkedBackgroundColor: Color.Orange
})
.onChange((isChecked: boolean) => {
promptAction.showToast({ message: '选项1
被选中了', duration: 1000 })
})
Text('选项1').fontSize(25)
}

Checkbox 复选框

复选框:
Row() {
CheckboxGroup({ group: 'checkboxGroup' })
Text('全选').fontSize(20)
}
Row() {
Checkbox({ name: 'checkbox1', group: ' checkboxGroup' })
.select(true) //设置默认选中
.selectedColor(0xed6f21) //选中颜色
.onChange((value: boolean) => {
//设置选中事件
console.info('Checkbox1 change is ' + value)
})
Text('可乐').fontSize(20)
}
Row() {
Checkbox({ name: 'checkbox2', group: ' checkboxGroup' })
.select(false)
.selectedColor(0x39a2db)
.onChange((value: boolean) => {
console.info('Checkbox2 change is ' + value)
})
Text('鸡翅').fontSize(20)
}

Blank 空白填充组件

Blank是空白填充组件,在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力
Blank组件仅当其父组件为Row/Column ,且父组件设置了宽度才生效
//Blank父组件Row未设置宽度时,子组件间无空白填充
Row() {
Text('Left Space').fontSize(24)
Blank()
Text('Right Space').fontSize(24)
}
//Blank父组件Row设置了宽度时,子组件间以空白填充
Row() {
Text('Left Space').fontSize(24)
Blank()
Text('Right Space').fontSize(24)
}.width('100%')

Blank支持color属性,用来设置空白填充的填充颜色。
Row() {
Text('Left Space').fontSize(24)
//设置空白填充的填充颜色
Blank().color(Color.Yellow)
Text('Right Space').fontSize(24)
}.width('100%')

 Divider 分隔符

Divider()
.strokeWidth(15)//宽度
.color(0x2788D9)//颜色
.vertical(true) //竖线

PatternLock 图案密码锁组件

PatternLock()
.sideLength(200) //设置组件的宽度和高度(宽高相同)
.circleRadius(9) //设置宫格中圆点的半径
.pathStrokeWidth(18)//设置连线的宽度。设置为0或负数等非法值时连线不
显示
.activeColor('#B0C4DE') //设置宫格圆点在“激活”状态的填充颜色
.selectedColor('#228B22') //设置宫格圆点在“选中”状态的填充颜色
.pathColor('#90EE90') //设置连线的颜色
.backgroundColor('#F5F5F5') //背景颜色
.autoReset(true) //设置在完成密码输入后,再次在组件区域按下时是否重
置组件状态
.onPatternComplete((selectedSerial: Array<number>) => {
console.log(selectedSerial.toString());
})

Progress 进度条组件

Progress({ value: 20, total: 100, type: ProgressType.Linear })
.width("70%")
Progress({ value: 20, total: 100, type: ProgressType.Ring })
.color(Color.Orange).style({ strokeWidth: 8 })
Progress({ value: 20, total: 100, type: ProgressType.Eclipse })
.width(50)
Progress({ value: 20, total: 100, type: ProgressType.ScaleRing })
.backgroundColor(Color.Green).color(Color.Red)
.style({ strokeWidth: 15, scaleCount: 20, scaleWidth: 3 })
Progress({ value: 10, total: 100, type: ProgressType.Capsule })
.width(100).height(20)
Progress({ value: 20, total: 100, type: ProgressType.Capsule })
.width(100).height(20).color(Color.Green)
Progress({ value: 30, total: 100, type: ProgressType.Capsule })
.width(10).height(60).backgroundColor(Color.Orange)

QRCode 二维码组件

 Rating 评分组件

RichText 富文本组件

Search 搜索框组件

Select 下拉选择菜单

Slider 滑动条组件

Stepper与StepperItem 步骤导航器组件

TextClock  当前系统时间显示,支持不同时区的时间显示,最高精确到秒级

TextTimer 计时器组件

Toggle 组件提供复选框样式、状态按钮样式及开关样式

DataPanel 数据面板,主要支持两类数据面板

 

Gauge 数据量规图表

ImageAnimator 动画组件,来实现逐帧播放图片

Marquee 跑马灯组件

系统图表库

系统图标库:
https://developer.huawei.com/consumer/cn/design/harmonyos-symbol/
使用说明:
https://gitee.com/openharmony/docs/blob/master/
zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-symbolSpan.md#attributemodifier12

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

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

相关文章

Flutter Dart 集合类型List Set Map详解军 以及循环语句 forEaclh map where any every

List基础用法 var list1 ["西瓜", "苹果", "香蕉", true, 0];var list2 <String>["西瓜", "苹果", "香蕉"];List list3 ["西瓜", "苹果", "香蕉"];list3.add("草莓&…

在网上找的资料怎样打印出来?

在数字化时代&#xff0c;我们经常需要从互联网上获取各种资料&#xff0c;无论是学术论文、工作文档还是学习资料。然而&#xff0c;如何高效地将这些网上的资料打印出来&#xff0c;却是一个值得探讨的问题。本文将为您提供一个全面的解决方案&#xff0c;帮助您轻松完成网上…

2025年计算机视觉与智能通信国际会议(ICCVIC 2025)

2025 International Conference on Computer Vision and Intelligent Communication 一、大会信息 会议简称&#xff1a;ICCVIC 2025 大会地点&#xff1a;中国杭州 收录检索&#xff1a;提交Ei Compendex,CPCI,CNKI,Google Scholar等 二、会议简介 2025年计算机视觉与智能通…

程序员思维体操:TDD修炼手册

程序员思维体操&#xff1a;TDD修炼手册 ——从"先写代码"到"测试先行"的认知革命 一、重新认识TDD&#xff1a;不仅仅是写测试 什么是TDD&#xff08;测试驱动开发&#xff09; TDD其实很简单&#xff0c;不要看名字很高级复杂&#xff0c;传统开发是直…

建筑节能成发展焦点,楼宇自控应用范围持续扩大

在全球能源危机日益严峻、环保意识不断增强的大环境下&#xff0c;建筑节能已成为建筑行业发展的核心议题。从大型商业综合体到普通住宅&#xff0c;从公共建筑到工业厂房&#xff0c;节能需求贯穿建筑全生命周期。而楼宇自控系统凭借其对建筑设备的智能化管理和精准调控能力&a…

嵌入式软件--stm32 DAY 3

0、GPIO回顾 GPIO&#xff0c;通用型输入输出&#xff0c;控制stm32输入输出的引脚&#xff0c;统称GPIO。 主功能是默认的功能 复用的功能在芯片里都是由连线的&#xff0c;有联系才能复用。所以GPIO引脚能复用的功能只能是它默认复用功能和重定义功能。一般都使用默认功能…

点云从入门到精通技术详解100篇-基于二次误差和高斯混合模型的点云配准算法

目录 知识储备 结合二次误差度量与高斯混合模型的点云配准 算法核心创新点: 关键参数说明: 性能优化建议: 前言 国内外研究现状 全局配准算法的国内外研究 局部配准算法的国内外研究 2 点云配准相关概念与方法 2.1 什么是点云配准 2.2 点云的获取及点云主要数据…

linux系统问题杂谈

1.配置好anaconda之后&#xff0c;在一个终端中编辑好环境变量之后能够正常使用conda命令&#xff0c;但是新打开一个中断使用conda命令报错"无法识别conda"。 原因&#xff1a;使用“export PATH"/home/username/anaconda3/bin:$PATH"命令&#xff0c;临…

【中级软件设计师】函数调用 —— 传值调用和传地址调用 (附软考真题)

【中级软件设计师】函数调用 —— 传值调用和传地址调用 (附软考真题) 目录 【中级软件设计师】函数调用 —— 传值调用和传地址调用 (附软考真题)一、历年真题二、考点&#xff1a;函数调用 —— 传值调用和传地址调用&#x1f53a;1、传值调用&#x1f53a;2、传引用(地址)调…

Spring Cloud Gateway 如何将请求分发到各个服务

前言 在微服务架构中&#xff0c;API 网关&#xff08;API Gateway&#xff09;扮演着非常重要的角色。它负责接收客户端请求&#xff0c;并根据预定义的规则将请求路由到对应的后端服务。Spring Cloud Gateway 是 Spring 官方推出的一款高性能网关&#xff0c;支持动态路由、…

打造高功率、高电流和高可靠性电路板的厚铜PCB生产

厚铜PCB生产是指制作一种具有较厚铜层的PCB&#xff08;Printed Circuit Board&#xff0c;印刷电路板&#xff09;。这种PCB通常用于高功率、高电流和高可靠性的电子设备中。厚铜PCB的生产过程包括以下几个 主要步骤&#xff1a; 1. 基材准备 厚铜PCB的基材通常采用FR4或CEM-…

软考高级-系统架构设计师 论文范文参考(一)

文章目录 论SOA技术的应用论SOA在企业信息化中的应用论UP&#xff08;统一过程方法&#xff09;的应用论分布式数据库的设计与实现论改进Web服务器性能的有关技术论基于UML的需求分析论基于构件的软件开发论基于构件的软件开发(二) 论SOA技术的应用 摘要&#xff1a;  本人于…

京东平台关键字搜索接口开发指南:Python实现与代码详解

一、接口概述 京东关键字搜索接口允许开发者通过HTTP请求获取平台商品的关键字搜索结果&#xff0c;常用于商品比价、数据分析等场景。本文基于Python演示如何调用京东搜索接口&#xff0c;解析返回数据并实现基础功能。 二、技术实现步骤 接口地址分析‌ 京东未完全公开API…

浅析锁的应用与场景

锁的应用与场景&#xff1a;从单机到分布式 摘要&#xff1a;在多线程和分布式系统中&#xff0c;“锁”是避免资源竞争、保障数据一致性的核心机制。但你真的了解锁吗&#xff1f;什么时候该用锁&#xff1f;用哪种锁&#xff1f;本文通过通俗的比喻和代码示例&#xff0c;带…

30天通过软考高项-第三天

30天通过软考高项-第三天 任务&#xff1a;项目范围管理 思维导图阅读 知识点集锦阅读 知识点记忆 章节习题练习 知识点练习 手写回忆ITTO 听一遍喜马拉雅关于范围的内容 范围管理-背 1. 过程定义 规划变瘦订份缺孔 规划范围管理&#xff1a;为了记录如何定…

文字过长使用省略号展示,text-overflow 的使用和不生效场景的解决办法,flex 布局中文字省略展示的坑

在前端开发过程中【单行文本内容过长使用省略号展示】这是一个特别常见的功能&#xff0c;大家都知道要使用 text-overflow 这个 css 属性。 关于这个属性&#xff0c;我们可以先看一下官方文档怎么说。 text-overflow CSS 属性用于确定如何提示用户存在隐藏的溢出内容。其形式…

(二)读写分离架构、冷热分离架构

文章目录 读写分离架构什么是读写分离结构架构模型优缺点优点缺点 技术案例写情况读情况 冷热分离架构什么是冷热分离架构?架构模型优缺点优点 缺点技术案例读数据写数据 读写分离架构 什么是读写分离结构 读写分离架构针对于数据库。数据库原本负责读写两个功能。 读写分离架…

windows中kafka4.0集群搭建

参考文献 Apache Kafka windows启动kafka4.0&#xff08;不再需要zookeeper&#xff09;_kafka压缩包-CSDN博客 Kafka 4.0 KRaft集群部署_kafka4.0集群部署-CSDN博客 正文 注意jdk需要17版本以上的 修改D:\software\kafka_2.13-4.0.0\node1\config\server.properties配置文…

无线通信网

注意区分CA&#xff08;无线&#xff09;和CD&#xff08;有线&#xff09; 无线局域网扩频技术 FHSS/DSSS 无线频谱和信道&#xff1a;2.4G/5GHz,2.4GHz共13个信道&#xff0c;3个不重叠信道 CSMA/CA&#xff0c;隐藏节点 MANET 无线安全&#xff1a;WEP、WPA、WPA2、AES/TP…

嵌入式开发:基础知识介绍

一、嵌入式系统 1、介绍 以提高对象体系智能性、控制力和人机交互能力为目的&#xff0c;通过相互作用和内在指标评价的&#xff0c;嵌入到对象体系中的专用计算机系统。 2、分类 按其形态的差异&#xff0c;一般可将嵌入式系统分为&#xff1a;芯片级&#xff08;MCU、SoC&am…