尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

鸿蒙应用开发从入门到实战(十二):ArkUI组件ButtonToggle
📅 发布时间:2026/6/18 14:48:43
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解按钮组件Button和Toggle的使用。

大家好,我是潘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组件的状态由关闭切换为打开时,isOn为true,从打开切换为关闭时,isOn为false。

示例代码:

拷贝素材到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+编程、企业级项目实战等原创内容,防止迷路,欢迎关注!


作者:黑马腾云
微信公众账号:自学帮
博客园:黑马腾云博客
如果你想及时得到个人撰写文章以及著作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注微信公众号)。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关新闻

  • 从视觉、文案到交互:三步彻底去除产品AI味
  • 剑指offer-32、把数组排成最⼩的数
  • python微博舆情分析系统 情感分析 爬虫 机器学习 新浪微博 信息采集 大数据工艺(源码)✅

最新新闻

  • DolphinDB Kafka数据接入:消息队列集成
  • 合肥高新区 房屋修缮|维小达|墙面/吊顶/窗户/壁纸壁布/瓷砖美缝/石材修复全屋破损翻新一站式服务 - 维小达科技
  • 跑遍广州 7 家黄金回收店!实测总结普通人通用变现公式 + 避坑指南 - 奢侈品回收评测
  • okbiye 毕业论文专项 AI 写作:重构毕业撰文全链路,消解数万学子论文创作多层桎梏
  • 西安旧黄金回收靠谱渠道推荐|2026避坑保价完整版 - 奢侈品回收测评
  • Legacy iOS Kit终极指南:3步让你的旧iPhone/iPad重获新生

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号