鸿蒙开发-UI-组件

鸿蒙开发-UI-布局

鸿蒙开发-UI-布局-线性布局

鸿蒙开发-UI-布局-层叠布局

鸿蒙开发-UI-布局-弹性布局

鸿蒙开发-UI-布局-相对布局

鸿蒙开发-UI-布局-格栅布局

鸿蒙开发-UI-布局-列表

​​​​​​鸿蒙开发-UI-布局-网格

鸿蒙开发-UI-布局-轮播

文章目录

前言

一、按钮

1.创建按钮

2.设置按钮样式

3.自定义样式

4.添加事件

5.常用场景

二、单选框

1.创建单选框

2.添加事件

3.常用场景

三、切换按钮

1.创建切换按钮

2.自定义样式

3.添加事件

4.常用场景

总结


前言

上文我们学习了解轮播布局使用的Swiper组件,了解组件的布局约束,详细学习了轮播容器组件的相关应用特性(循环播放、自动播放、导航样式自定义、轮播方向控制、轮播页面控制、单页面多组件控制),本文将学习鸿蒙开发UI相关的常用组件。

一、按钮

Button是按钮组件,通常用于响应用户的点击操作,其类型包括胶囊按钮、圆形按钮、普通按钮。Button当做为容器使用时可以通过添加子组件实现包含文字、图片等元素的按钮

1.创建按钮

1. 创建不含子组件的按钮调用接口:

//注:创建不包含子组件的按钮
Button(label?: string, options?: { type?: ButtonType, stateEffect?: boolean })

代码示例:

Button('Ok', { type: ButtonType.Normal, stateEffect: true }) .borderRadius(8) .backgroundColor(0x317aff) .width(90).height(40)

UI渲染效果:

2. 创建包含子组件的按钮调用接口:

Button(options?: {type?: ButtonType, stateEffect?: boolean})
{
....
}

代码示例:

Button({ type: ButtonType.Normal, stateEffect: true }) {
//button组件包含一个Row组件作为子组件,Row组件定义Image组件和Text组件Row() {Image($r('app.media.loading')).width(20).height(40).margin({ left: 12 })Text('loading').fontSize(12).fontColor(0xffffff).margin({ left: 5, right: 12 })}.alignItems(VerticalAlign.Center)
}.borderRadius(8).backgroundColor(0x317aff).width(90).height(40)

UI渲染效果:

2.设置按钮样式

Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆形按钮)和Normal(普通按钮),通过type进行设置。其默认的为Capsule(胶囊类型)

Capsule:按钮的圆角自动设置为高度的一半,不支持通过borderRadius属性重新设置圆角

Circle:按钮为圆形,不支持通过borderRadius属性重新设置圆角

Normal:按钮默认圆角为0,支持通过borderRadius属性重新设置圆角

按钮类型设置方式UI渲染效果
Capsule

Button('Disable', { type: ButtonType.Capsule, stateEffect: false })

CircleButton('Circle', { type: ButtonType.Circle, stateEffect: false })

Normal

Button('Ok', { type: ButtonType.Normal, stateEffect: true })

3.自定义样式

自定义样式设置方式
设置边框弧度

Button('circle border', { type: ButtonType.Normal }) 
  .borderRadius(20)//通过borderRadius属性设置按钮边框弧度
  .height(40)

UI渲染

设置文本样式

Button('font style', { type: ButtonType.Normal })
  .fontSize(20) 
  .fontColor(Color.Pink) 
  .fontWeight(800)

//通过fontSize、fontColor、fontWeight设置文本的大小、颜色、粗细

UI渲染

设置背景颜色

Button('background color').backgroundColor(0xF55A42)
//通过backgroundColor属性设置按钮的背景颜色

UI渲染

功能型按钮

Button({ type: ButtonType.Circle, stateEffect: true }) { 
 Image($r('app.media.ic_public_delete_filled')).width(30).height(30) 
}.width(55).height(55).margin({ left: 20 }).backgroundColor(0xF55A42)

UI渲染

4.添加事件

Button组件通常用于触发某些操作,可以绑定onClick事件来响应点击操作后的自定义行为

Button('Ok', { type: ButtonType.Normal, stateEffect: true }) .onClick(()=>{ console.info('Button onClick') })
//注意:button添加点击实际,当点击按钮,控制台输入'Button onClick'字符串

5.常用场景

1.用于页面跳转,当点击按钮跳转到指定新页面

2.用于表单提交,当点击按钮向后端服务器发送请求

3.用于可滑动界面的悬浮按钮,当点击可以快速定位到滑动界面的顶部或底部

二、单选框

Radio是单选框组件,通常用于提供相应的用户交互选择项,同一组的Radio中只有一个可以被选中

1.创建单选框

1.创建Radio调用接口

Radio(options: {value: string, group: string})

该接口用于创建一个单选框,其中value是单选框的名称,group是单选框的所属群组名称。checked属性:可以设置单选框的状态,设置为true时表示单选框被选中。

Radio仅支持选中和未选中两种样式,不支持自定义颜色和形状

代码示例:

Radio({ value: 'Radio1', group: 'radioGroup' }).checked(false)
Radio({ value: 'Radio2', group: 'radioGroup' }).checked(true)

UI渲染效果:

2.添加事件

Radio通常用于选中后触发某些操作,可以绑定onChange事件来响应选中操作后的自定义行为

  Radio({ value: 'Radio1', group: 'radioGroup' }).onChange((isChecked: boolean) => {if(isChecked) {//注:这里定义单选框Radio1选择执行操作}})Radio({ value: 'Radio2', group: 'radioGroup' }).onChange((isChecked: boolean) => {if(isChecked) {//注:这里定义单选框Radio2选择执行操作}})

3.常用场景

1.用于单选的场景

三、切换按钮

1.创建切换按钮

Toggle组件提供状态按钮样式,勾选框样式及开关样式,一般用于两种状态之间的切换

1.创建Toggle调用接口

Toggle(options: { type: ToggleType, isOn?: boolean })

ToggleType为开关类型,包括Button、Checkbox和Switch,isOn为切换按钮的状态

2.ToggleType为Checkbox或者Switch时,创建的Toggle不包含子组件

ToggleType代码示例UI渲染
CheckboxToggle({ type: ToggleType.Checkbox, isOn: false })
Toggle({ type: ToggleType.Checkbox, isOn: true })
SwitchToggle({ type: ToggleType.Switch, isOn: false })
Toggle({ type: ToggleType.Switch, isOn: true })

3.ToggleType为Button时,创建的Toggle包含子组件,只能包含一个

注:如果子组件有文本设置,则相应的文本内容会显示在按钮内部

Toggle({ type: ToggleType.Button, isOn: false }) {Text('status button').fontColor('#182431').fontSize(12)
}.width(100)
Toggle({ type: ToggleType.Button, isOn: true }) {Text('status button').fontColor('#182431').fontSize(12)
}.width(100)

UI渲染效果:

2.自定义样式

自定义样式描述代码示例
selectedColor属性设置Toggle打开选中后的背景颜色

Toggle({ type: ToggleType.Button, isOn: true }) {
  Text('status button')
  .fontColor('#182431')
  .fontSize(12)
}.width(100).selectedColor(Color.Pink)
Toggle({ type: ToggleType.Checkbox, isOn: true })
  .selectedColor(Color.Pink)
Toggle({ type: ToggleType.Switch, isOn: true })
  .selectedColor(Color.Pink)

UI渲染:

switchPointColor属性设置Switch类型的圆形滑块颜色,仅对type为ToggleType.Switch生效

Toggle({ type: ToggleType.Switch, isOn: false })
  .switchPointColor(Color.Pink)
Toggle({ type: ToggleType.Switch, isOn: true })
  .switchPointColor(Color.Pink)

UI渲染

3.添加事件

Toggle通常用于选中和取消选中后触发某些操作,可以绑定onChange事件来响应操作后的自定义行为

Toggle({ type: ToggleType.Switch, isOn: false }).onChange((isOn: boolean) => {if(isOn) {//注:当被选中后定义执行操作}})

4.常用场景

常用于切换某种功能的开关状态


总结

本文学习了鸿蒙开发UI相关的常用组件,包括按钮组件、单选组件、切换组件,详细学习了每种组件的创建方式,样式调整,监听事件以及常见的使用场景,下文继续学习鸿蒙开发UI相关的其他常用组件。

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

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

相关文章

深度强化学习(王树森)笔记04

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

论文精读--BERT

不像视觉领域,在Bert出现之前的nlp领域还没有一个深的网络,使得能在大数据集上训练一个深的神经网络,并应用到很多nlp的任务上 Abstract We introduce a new language representation model called BERT, which stands for Bidirectional En…

范仲淹大直男逆袭,先天下之忧而忧

人在最艰苦时,最能体现英雄本色。 天底下最苦的是读书。读书要眼到、手到、心到,专心致志,灵活运用。 范仲淹读书很用功,每天煮一锅粥。等到第二天,粥凝固了,范仲淹把隔夜粥划为四块,早上吃两块…

【C语言】编译和链接

目录 (一)编译 (1)预处理(预编译) (2)编译 i.词法分析 ii.语法分析 iii.语义分析 (3)汇编 (二)链接 重定位 正文开始 (一)编译…

MPI 集体通信(collective communication)

1、MPI调用接口 (1)广播MPI_BCAST (2)散发MPI_SCATTER (3)收集MPI_GATHER (4)归约MI_REDUCE MPI_REDUCE将组内每个进程输入缓冲区中的数据按给定的操作op进行运算,并将…

什么是协方差矩阵?

协方差矩阵(Covariance Matrix)是一个用于衡量多个变量之间相互关系的工具,在统计学和数据分析领域中非常重要。这个矩阵展现了每一对变量之间的协方差。协方差是衡量两个变量如何一起变化的度量;如果两个变量的协方差是正的&…

第四篇:怎么写express的路由(接口+请求)

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 引言: &#x1f4…

【Flink-1.17-教程】-【四】Flink DataStream API(7)输出算子(Sink)

【Flink-1.17-教程】-【四】Flink DataStream API(7)输出算子(Sink) 1)连接到外部系统2)输出到文件3)输出到 Kafka4)输出到 MySQL(JDBC)5)自定义 …

C++力扣题目416--分割等和子集 1049--最后一块石头的重量II

416. 分割等和子集 力扣题目链接(opens new window) 题目难易:中等 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: […

k8s-配置管理

一、ConfigMap 1.1 创建ConfigMap 1.2 在环境种使用ConfigMap ConfigMap最为常见的使用方式就是在环境变量和Volume中引用。 1.3 在Volume中引用ConfigMap 在Volume中引用ConfigMap,就是通过文件的方式直接将ConfigMap的每条数据填入Volume,每条数据是…

【JavaSE篇】——数组的定义与使用

目录 本章的目标: 🎈数组的基本概念 🍭创建数组 🍭数组的初始化 🍭数组的使用 👉数组中元素访问 👉遍历数组 🎈数组是引用类型 🍭初始JVM的内存分布 &#x1f…

【周赛】第382场周赛

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 从这一场(第382场周赛)周赛开始记录,目标是尽快达到准确快速AC前三道题,每场比赛…

Windows XP x86 sp3 安装 Google Chrome 49.0.2623.112 (正式版本) (32 位)

1 下载地址; https://dl.google.com/release2/h8vnfiy7pvn3lxy9ehfsaxlrnnukgff8jnodrp0y21vrlem4x71lor5zzkliyh8fv3sryayu5uk5zi20ep7dwfnwr143dzxqijv/49.0.2623.112_chrome_installer.exe 2 直接 双击 49.0.2623.112_chrome_installer.exe 安装; 3 …

第二百九十二回

文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何混合选择图片和视频文件"相关的内容,本章回中将介绍如何混合选择多个图片和视频文件.闲话休提,让我们一起Talk Flutter吧。 1…

BGP:04 fake-as

使用 fake-as 可以将本地真实的 AS 编号隐藏,其他 AS 内的对等体在指定本端对等体所在的AS 编号时,应该设置成这个伪AS 编号。 这是实验拓扑,IBGP EBGP 邻居都使用物理接口来建立 基本配置: R1: sys sysname R1 int loo0 ip add…

带libc源码gdb动态调试(导入glibc库使得可执行文件动态调试时可看见调用库函数源码)

文章目录 查看源码是否编译时有-g调试信息和符号表在 gdb 中加载 debug 文件/符号表将 debug 文件放入 ".debug" 文件夹通过 gdb 命令 set debug-file-directory directories GCC的gcc和g区别指定gcc/g,glibc的版本进行编译指定gcc/g的版本指定glibc的和l…

小电影网站上线之nginx配置不带www域名301重定向到www域名+接入腾讯云安全防护edgeone

背景 写了个电影网站(纯粹搞着玩的),准备买个域名然后上线,但是看日志经常被一些恶意IP进行攻击,这里准备接入腾讯云的安全以及加速产品edgeone,记录下当时的步骤。 一、nginx配置重定向以及日志格式 ng…

【数据分析】Excel中使用VBA进行宏编程

目录 0 准备工作1 VBA简介1.1 Excel VBA应用程序的构成1.2 事件驱动1.3 宏1.3.1 创建宏1.3.2 宏安全 2 VBA基础2.1 注释2.2 数据类型2.2.1 基本数据类型2.2.2 枚举类型2.2.3 用户自定义数据类型 2.2 变量2.3 常量2.4 运算符2.5 程序结构2.6 过程2.7 函数 3 Excel应用程序开发流…

【Apollo CyberRT】源码分析之 “component” 模块

代码位置 apollo/cyber/component 功能 在自动驾驶系统中,模块(如感知、定位、控制系统等)在 Cyber ​​RT 下以 Component 的形式存在。不同 Component 之间通过 Channel 进行通信。Component 概念不仅解耦了模块,还为将模块拆…

实现图片分块化(使用einops库)

背景介绍 在进行机器学习的模型训练任务的时候,针对图像数据集的处理,常常会对数据集进行分块的操作;具体到模型结构中,在ViT框架中,把每一个图像看作是一个的patch,每一个patch可以当作是一个NLP领域的一…