鸿蒙开发-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相关的其他常用组件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【AndroidStudio】2022.3Giraffe连接超时,更换下载源,使用本地gradle,版本对应问题

记录了使用AndroidStudio2022.3 Giraffe版本在搭建环境时遇到的问题,包括连接超时,gradle无法读取等。 如果只看如何正确的配置,直接跳转第3节 配置汇总 1 连接超时 项目一开始会自动下载gardle文件来加载项目 1.1 Connect timed out 基…

智能语音识别源码系统+语义理解+对话管理+语音合成 带完整的搭建教程

人工智能技术的不断发展,智能语音识别技术逐渐成为人们日常生活和工作中不可或缺的一部分。然而,目前市场上的智能语音识别产品大多存在一定的局限性,如识别率不高、功能单一等。为了解决这些问题,罗峰给大家分享一款基于智能语音…

学生护眼灯哪个品牌好?最好的学生护眼灯品牌排行

说到台灯,相信大家都不陌生,特别是对于家中有学生的家长们而言,一款优秀的护眼台灯已经成为居家必备的工具之一。然而,随着各种护眼台灯层出不穷,价格从几百到上千不等,人们对于这一领域的产品是否物有所值…

Shell脚本④循环语句for、while、until

目录 一.for 1. 九九乘法表 2.求1到10奇数和 3.累计加到100 (1)方法一 (2)方法2 二.while 1.猜价格小游戏 2.累加到100的方法三 三.until循环 1.累加到100方法四 四.嵌套循环 五.循环语句中break、exit和continue 1…

深入了解Python游戏开发模块:pyglet

目录 一、引言 二、pyglet简介 三、pyglet的功能与特点 四、如何使用pyglet开发游戏 五、与其他游戏开发框架的比较 六、结论 一、引言 在Python中,pyglet是一个强大的游戏开发模块,它提供了创建2D和3D游戏所需的各种工具。pyglet使用OpenGL作为其…

叩开c++的大门

目录 1. 什么是c? 2. c的发展史 3. c和c语言的区别是什么呢? 4. 接下来让我们正式进入c的学习吧。 4.1 c的关键字 4.2 命名空间 4.2.1 命名空间的定义 4.2.2 命名空间的使用 4.3 c的输入输出 std命名空间的使用惯例std是C标准库的命名空间&…

新年的故事,独具魅力的新年传说

新年的故事,独具魅力的新年传说 新年,是我们每年都期盼的时刻。在这个喜庆的日子里,人们互相祝福、共享快乐,以满怀希望的心情迎接未来的到来。新年不仅仅是一个节日,它背后浓厚的文化积淀和故事也让人无比着迷。让我…

【二分查找】LC习题看这一篇就够了!

二分查找(灵神笔记) 模版 红蓝染色法 原始问题:返回有序数组中第一个≥8的数的位置 如果每个数都<8 返回数组长度 闭区间 def lower_bound(nums: List[int], target: int) -> int:left 0right len(nums) - 1while left &…

小型洗衣机哪个好?小型洗衣机全自动推荐

在近年以来,由于人们对健康的认识和生活质量的不断改善,使得内衣洗衣机这一类的产品在近年来得到了飞速的发展,洗烘一体机、洗烘套装的价格总体下降,功能和性能都得到了改善,往往更多的用户会选择一台或者多台洗衣机来…

HarmonyOS ArkTS Toggle基本使用(十七)

组件提供勾选框样式、状态按钮样式及开关样式。 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 仅当ToggleType为Button时可包含子组件。 接口 Toggle(options: { type: ToggleType, isOn?: boolean }) …

C++ 程序使用 OpenCV 库来创建一个图像金字塔,然后将这些图像合并成一张大图

文章目录 源码文件功能解读编译文件 源码文件 #include <iostream> #include <vector> #include <string> #include <opencv2/opencv.hpp>int main() {// 这里应该有代码来生成或加载一系列图像到 imagePyramidstd::vector<cv::Mat> imagePyram…

电子行业含砷废水,深度除砷技术

砷是一种类金属元素&#xff0c;砷化物生物毒性极强&#xff0c;是国际公认的第一类致癌物。因此&#xff0c;这些含砷废水必须经过一定的处理才能排放到环境中。那么&#xff0c;哪些行业会产生含砷废水呢?在地球上&#xff0c;砷是一种常见的元素。在自然界中&#xff0c;砷…

【格密码基础】基于LWE问题的密码系统

目录 一. 介绍 二. LWE密码方案简单介绍 三. LWE经典归约 四. LWE性质 五. LWE的鲁棒性 一. 介绍 在2005年&#xff0c;Regev基于LWE问题提出了一个新的公钥密码方案。该方案可实现语义安全&#xff08;semantic security&#xff09;&#xff0c;其中误差率&#xff08;…

Google Chrome RCE漏洞 CVE-2020-6507 和 CVE-2024-0517的简单分析

本文深入研究了两个在 Google Chrome 的 V8 JavaScript 引擎中发现的漏洞&#xff0c;分别是 CVE-2020-6507 和 CVE-2024-0517。这两个漏洞都涉及 V8 引擎的堆损坏问题&#xff0c;允许远程代码执行。通过EXP HTML部分的内存操作、垃圾回收等流程方式实施利用攻击。 CVE-2020-…

256:vue+openlayers利用高德逆地理编码,点击地图,弹出某点坐标和地址信息

第256个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中利用高德逆地理编码,点击地图,弹出某点坐标和地址信息。这里要仔细阅读高德地图的逆编码API,同时要注意的是,这种转换在中国很好用,到了欧美国家就不好使了。 直接复制下面的 vue+openlayers源代码…

基于SSM的蛋糕甜品店管理系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的蛋糕甜品店管理系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring…

OPENMV驱动云台实现颜色追踪

前言 本篇文章旨在记录我电赛期间学习OPENMV对颜色识别&#xff0c;以及通过串口通信的方式将坐标数据传给单片机&#xff0c;从而驱动舵机云台进行颜色追踪。 一、OPENMV色块识别追踪代码 # Single Color RGB565 Blob Tracking Example # # This example shows off single co…

【Axure高保真原型】可视化环形图

今天和大家可视化环形图的原型模板&#xff0c;&#xff0c;包括4种效果&#xff0c;移入变色在环形中部显示数据、移入变色在标签弹窗显示数据、移入放大在环形中部显示数据、移入放大在标签弹窗显示数据。这个原型是用Axure原生元件制作的&#xff0c;所以不需要联网或者调用…

Centos7安装python3.7.13以及pip23.3.2

拿到机器发现只有自带的python2.X&#xff0c;但是算法cplex求解器需要用到Python3.7&#xff0c;安装过程遇到一些问题&#xff0c;记录下来&#xff1a; 如果需要卸载python3 1、卸载python3 rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps 2、 删除所有残余…

vue常用指令(v-bind)

一、v-bind 指令 作用: 设置元素的属性 &#xff08;比如:src,title,class&#xff09; 二、代码演示 1、设置元素的src 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&quo…