鸿蒙应用开发从入门到实战(十二):ArkUI组件ButtonToggle

news/2025/9/23 9:11:42/文章来源:https://www.cnblogs.com/heimatengyun/p/19106557

大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战等原创内容、欢迎关注!

ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解按钮组件Button和Toggle的使用。

一、按钮Button

1.1 概述

Button为按钮组件,通常用于响应用户的点击操作。

1.2 参数

Button组件有两种使用方式,分别是不包含子组件包含子组件,两种方式下,Button 组件所需的参数有所不同,下面分别介绍

1.2.1 不包含子组件

不包含子组件时,Button组件所需的参数如下

Button(label?: string, options?: { type?: ButtonType, stateEffect?: boolean })
  • label

label为按钮上显示的文字内容。

  • options.type

options.type为按钮形状,该属性的类型ButtonType,可选的枚举值有

名称 描述 效果
ButtonType.Capsule 胶囊形状 1胶囊形状
ButtonType.Circle 圆形 2圆形
)
ButtonType.Normal 普通形状 3普通形状
  • options.stateEffect

options.stateEffect表示是否开启点击效果,点击效果如下

4点击效果

1.2.2 包含子组件

子组件会作为按钮上显示的内容,可以是图片、文字等。这种方式下,Button组件就不在需要label参数了,具体如下

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

示例代码:

拷贝icon_new_folder.png到resources/base/media目录下

在component目录下新建button目录,新建ButtonParameter.ets文件

@Entry
@Component
// Button按钮参数
struct ButtonParameter {build() {Column({ space: 50 }) {//1、不包含子组件Button('按钮', { type: ButtonType.Capsule, stateEffect: false }).fontSize(25).width(150).height(60)//2、包含子组件Button({ type: ButtonType.Capsule, stateEffect: true }) {Row({ space: 5 }) {Image($r('app.media.icon_new_folder')).width(30).height(30)Text('新建').fontColor(Color.White).fontSize(25).fontWeight(500)}}.height(60).width(150)}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}

1.3 常用属性

1.3.1 背景颜色

按钮的颜色可使用backgroundColor()方法进行设置,例如

Button('绿色按钮').backgroundColor(Color.Green)

1.3.2 边框圆角

按钮的边框圆角大小可使用borderRadius()方法进行设置,例如

Button('圆角按钮', { type: ButtonType.Normal }).borderRadius(10)

示例代码:

button目录下新建ButtonAttributePage.ets文件

@Entry
@Component
// Button按钮属性
struct ButtonAttributePage {build() {Row() {// 1、背景颜色 backgroundColorColumn({ space: 50 }) {Button('绿色按钮').fontSize(25).width(150).height(60).backgroundColor(Color.Green)// 2、边框圆角 borderRadiusButton('圆角按钮', { type: ButtonType.Normal }).fontSize(25).width(150).height(60).borderRadius(20)}.width('100%').height('100%').justifyContent(FlexAlign.Center)}}
}

1.4 常用事件

对于Button组件而言,最为常用的就是点击事件,可以通过onClick()方法为按钮绑定点击事件,该方法的参数为一个回调函数,当按钮被点击时,就会触发该回调函数,例如

Button('点击事件').onClick(() => {console.log('我被点击了')
})

示例代码:

在button目录下新建ButtonEventPage.ets文件

@Entry
@Component
// Button按钮事件
struct ButtonEventPage {build() {Row() {// 1、点击事件Column({ space: 50 }) {Button('点击事件').fontSize(25).width(150).height(60).onClick(() => {console.log('我被点击了')})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}}
}

二、切换按钮Toggle

2.1 概述

Toggle为切换按钮组件,一般用于两种状态之间的切换,例如下图中的蓝牙开关。

4toggle

2.2 参数

Toggle组件的参数定义如下

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

type属性用于设置Toggle组件的类型,可通过ToggleType枚举类型进行设置,可选的枚举值如下

名称 描述 效果
ToggleType.Switch 开关 5switch
ToggleType.Checkbox 复选框 6checkbox
ToggleType.Button 按钮 7button
|
  • isOn

isOn属性用于设置Toggle组件的状态,例如

8开关状态

示例代码

在component目录下新建toggle目录,新建ToggleParameter.ets 文件

@Entry
@Component
// 切换按钮Toggle参数
struct ToggleParameter {build() {// type参数设置类型;ToggleType值:开关ToggleType.Switch 复选框ToggleType.Checkbox 按钮ToggleType.Button// isON设置组件状态Column({ space: 20 }) {Row({ space: 20 }) {Toggle({ type: ToggleType.Switch, isOn: false })Toggle({ type: ToggleType.Switch, isOn: true })}Row({ space: 20 }) {Toggle({ type: ToggleType.Checkbox, isOn: false })Toggle({ type: ToggleType.Checkbox, isOn: true })}Row({ space: 20 }) {Toggle({ type: ToggleType.Button, isOn: false }) {Text('button')}Toggle({ type: ToggleType.Button, isOn: true }) {Text('button')}}}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}

2.3 常用属性

2.3.1 选中状态背景色

可使用selectedColor()方法设置Toggle组件在选中(或打开)状态下的背景色,例如

9选中颜色

2.3.2 Switch滑块颜色

可使用设置switchPointColor()方法设置Switch类型的Toggle组件中的圆形滑块颜色,例如

10滑块颜色

示例代码:

在toggle目录下新建ToggleAttributePage.ets文件

@Entry
@Component
// 切换按钮Toggle常用属性
struct ToggleAttributePage {build() {Row() {Column({ space: 50 }) {//1.选中状态背景色 selectedColorRow({ space: 20 }) {Toggle({ type: ToggleType.Switch, isOn: true }).selectedColor(Color.Green)Toggle({ type: ToggleType.Checkbox, isOn: true }).selectedColor(Color.Green)Toggle({ type: ToggleType.Button, isOn: true }) {Text('button')}.selectedColor('#66008000')}//2.Switch圆形滑块颜色 switchPointColorToggle({ type: ToggleType.Switch, isOn: true }).selectedColor(Color.Green).switchPointColor(Color.Orange)}.width('100%').height('100%').justifyContent(FlexAlign.Center)}}
}

2.4 常用事件

Toggle组件常用的事件为change事件,每当Toggle组件的状态发生变化,就会触发change事件。开发者可通过onChange()方法为Toggle组件绑定change事件,该方法参数为一个回调函数,具体定义如下

onChange(callback: (isOn: boolean) => void)

Toggle组件的状态由关闭切换为打开时,isOntrue,从打开切换为关闭时,isOnfalse

示例代码:

拷贝素材到resources/base/media目录下,img_light.png、img_dark.png

在toggle目录下新建LightPage.ets

@Entry
@Component
struct LightPage {@State isOn: boolean = false;build() {Column({ space: 20 }) {if (this.isOn) {Image($r('app.media.img_light')).height(300).width(300).borderRadius(20)} else {Image($r('app.media.img_dark')).height(300).width(300).borderRadius(20)}Toggle({ type: ToggleType.Switch, isOn: this.isOn }).width(60).height(30).onChange((isOn) => {this.isOn = isOn;})}.height('100%').width('100%').justifyContent(FlexAlign.Center)}
}

《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战等原创内容,防止迷路,欢迎关注!

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

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

相关文章

宁波网站建设 慕枫科技旅游网站开发需求文档模板下载

2023年以来,在下游市场需求仍在复苏以及存量市场竞争加剧的背景之下,消费电子行业的发展受到不小挑战。不过,从中期业绩来看,可以发现一些企业还是具备一定的风险抵御能力,发展韧性显著,创维就是其中一员。…

贵州便宜网站推广优化电话濮阳建设公司网站

写在前面 如果您研究过美国企业早期发展的过程中的组织架构和战略规划,您就会发现,从18世纪末期以来一直到第二次世界大战前夕,美国工业公司基本上成立了技术和自己的实验室。从美国的石油公司,到汽车生产制造,还是化…

凉州区住房和城乡建设局网站汉阳网站建设公司

​10月19日,“提升数字安全技术,护航数字经济发展”高峰论坛在常州创意产业园圆满完成。本次论坛由常州国家高新区管委会、常州市工业和信息化局、常州市大数据管理中心主办,聚焦“数据安全”主题,邀请了超百位专家及企业代表共同…

wordpress获取站点副标题沈阳市网站建设企业

组合模式是把一个类别归为一个整体,并且组织多个整体之间的关系,使用通过树形结构来描述所有整体。一般的编写方式为一个类别对象下添加多个该对象的元素,该对象又为其它对象下的元素。简单来说就是一个学校有一个总部&#xff0…

小企业网站怎么做怎么做阿里巴巴外贸网站

Spring Cloud Vue前后端分离-第3章 SpringBoot项目技术整合 3-1 集成持久层框架Mybatis ORM:对象关系映射,Hibernate是全自动ORM,Mybatis是半自动ORM,Mybatis可以操作的花样更多,是首选的持久层框架 System模块集成Mybatis框架…

做食品网站需要什么资质吗seo网站首页推广

一、 实验目标: 熟悉Linux上C程序的编译和调试工具,包括以下内容: 1. 了解Linux操作系统及其常用命令 2. 掌握编译工具gcc的基本用法 3. 掌握使用gdb进行程序调试 二、实验环境与工件 1.个人电脑 2. Fedora 13 Linux 操作系统 3. gcc…

白云外贸型网站建设网络直接销售的营销方式

Python类分为两种,一种叫经典类,一种叫新式类。都支持多继承,但继承顺序不同。 新式类:从object继承来的类。(如:class A(object)),采用广度优先搜索的方式继承(即先水平搜索&#…

菠菜网站怎么做推广德州网站建设哪家好

网络存储概述: 随着企业中数据信息的不断增长,尤其当成百上千TB的数据需要备份、恢复,以及面临着扩容、灾难恢复等需求时,DAS(直接附加存储,就是通过与计算机主板的I/O接口,如IDE、SCSI相连接由…

国内专业建站平台站长工具域名解析

笔记本电脑 使用久了内部会累积有灰尘,这些灰尘可能会影响到正常的使用;还有些人觉得笔记本电脑内存不够,想要加装个内存条;亦或想要帮助笔记本电脑换cpu等,这些都是需要将笔记本电脑拆卸下来,然后才能够完成好相关的工作。宏基47…

网站模板安全管理系统微信公众平台入口

文章目录 一文教会女朋友学会日常Git使用!Git知识总结一、git基本知识了解1.git简介2.git区域了解3.git常用命令 二、常用工作场景1.克隆远程仓库,把仓库代码拉到本地2.推送代码到远程仓库(1)本地代码和远程仓库版本相同&#xff…

Spring框架中的注解主要有哪些

组件管理注解 @Component:通用组件注解,标识一个类为Spring管理的Bean @Service:业务逻辑层组件,是@Component的特化版本 @Repository:数据访问层组件,具有JDBC异常自动转换功能 @Controller:Web控制层组件,处…

领码优秀的方案|Spring Boot 异步请求深度剖析:从原理到 AI 驱动的吞吐量优化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

从视觉、文案到交互:三步彻底去除产品AI味

现在个人开发产品,AI的使用率越来越高,虽然效率提上去了,但是摆脱不了输出的产品有一股AI味。你很容易跟别人开发的产品“撞衫”。 先思考一个问题:为什么会有AI味?AI负责效率,人类负责温度一、简介 现在个人开发…

理解WPF Stylet中Command={s:Action 方法名}的设计与实现

前言 Stylet是我最近很喜欢使用的一个WPF框架,它的很多设计都体现了约定优于配置的思想。因此你会发现使用它非常方便,几乎不需要任何配置,开箱即用,只需知道它的一些约定即可。 查看Samples中Hello这个例子,只要…

帆软报表下拉框高度(JS添加css样式方式)调整

帆软报表下拉框高度调整解决方案 问题描述 在帆软报表开发中,点击下拉框按钮后,下拉选项列表的高度太小,用户体验不佳。直接使用 $(.fr-combo-list).css("height","400px") 设置高度往往不生效…

临沂专业网站制作湖南长沙门户网站

先看目录,除了2018年比较怪,其他最多2个D(数学只有两个弟弟,一个大弟,一个小弟) 文章目录 2023真题(2023-16)-D 2022真题(2022-21)-D-分析选项⇒是否等价⇒是…

网站设置的用途电商网站设计多少钱

1、系统时间和硬件时间 在Linux中有硬件时钟与系统时钟两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们…

在线建站平台wordpress无法进入仪表盘

ASSOC 显示或修改文件扩展名关联。ATTRIB 显示或更改文件属性。BREAK 设置或清除扩展式 CTRLC 检查。BOOTCFG 设置 boot.ini 文件的属性以便控制启动加载。CACLS 显示或修改文件的访问控制列表(ACL)。CALL 从另一个批处理…

建设网站话术如何在网上开店

文章目录 前言一、编写控制器二、编写服务层三、Postman测试前言 我们在 7.4 和 7.20 都曾实现过 评论列表,本文我们继续SpringBoot项目实战 评论 功能。逻辑实际相当Easy:一个学生 对 任意书 都可以 多次评论,但需要经过审核! 回顾一下 4.2 的数据库设计,学生图书评论表…

起域名网站项目计划书范文模板

前言 近期准备搭建一个博客网站,用来存储工作室同学们的学习笔记。服务器准备直接放在公网上,方便大家随时随地的上传和浏览,为了防止网站被人日穿成为肉鸡,一些防御措施还是要部署的。 首先明确自己的需求: 零成本…