【鸿蒙HarmonyOS开发笔记】常用组件介绍篇 —— 弹窗组件
简介
弹窗是移动应用中常见的一种用户界面元素,常用于显示一些重要的信息、提示用户进行操作或收集用户输入。ArkTS提供了多种内置的弹窗供开发者使用,除此之外还支持自定义弹窗,来满足各种不同的需求。
下面是所有涉及到的弹窗组件官方文档,请一切以官方文档为准
警告对话弹框 官方文档
操作列表弹框 官方文档
文本滑动选择器弹窗 官方文档
日期滑动选择期弹窗 官方文档
时间滑动选择器弹窗 官方文档
自定义弹窗 官方文档
消息提示
概述
Toast(消息提示),常用于显示一些简短的消息或提示,一般会在短暂停留后自动消失。具体效果如下

使用说明
可使用@ohos.promptAction模块中的showToast()方法显示Toast提示,使用时需要先导入@ohos.promptAction模块,如下
import promptAction from '@ohos.promptAction'
showToast()方法的参数定义如下
showToast(options: { message: string | Resource,duration?: number,bottom?: string | number})
● message
message属性用于设置提示信息
● duration
duration属性用于设置提示信息停留时长,单位为毫秒,取值范围是[1500,10000]
● bottom
bottom属性用于设置提示信息到底部的距离
示例
import promptAction from '@ohos.promptAction';@Entry
@Component
struct ToastPage {build() {Column() {Button('提示信息').onClick(() => {promptAction.showToast({message: '网络连接已断开',duration: 2000,bottom: 50});})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}
警告对话框
概述
AlertDialog(警告对话框)用于向用户发出警告或确认操作的提示,确保用户在敏感操作前进行确认。具体效果如下

可使用全局方法AlertDialog.show()显示警告对话框,具体用法可参考相关案例或者官方文档。
下面给出一个案例
@Entry
@Component
struct AlertDialogPage {build() {Column() {Button('删除').backgroundColor(Color.Red).onClick(() => {AlertDialog.show({title: '删除该记录?', //弹窗标题message: '删除后无法恢复,您确认要删除吗?', //弹窗信息autoCancel: true, //点击遮障层时,是否关闭弹窗alignment: DialogAlignment.Bottom, //弹窗位置offset: { dx: 0, dy: -20 }, //相对于弹窗位置的偏移量primaryButton: { //主要按钮,位于左侧value: '确认', //按钮内容fontColor: Color.Red, //字体颜色action: () => { //点击回调console.log('确认删除')}},secondaryButton: { //次要按钮,位于右侧value: '取消',action: () => {console.log('取消删除')}},cancel: () => { //点击遮罩层取消时的回调console.info('Closed callbacks')}})})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}
操作列表弹框
概述
ActionSheet(操作列表弹窗)用于提供一组选项给用户选择,用户从中选择后,可执行相应的操作。具体效果如下

使用说明
可使用全局方法ActionSheet.show()显示操作列表弹窗,具体用法可参考相关案例或者官方文档。
下面给出一个案例参考
@Entry
@Component
struct ActionSheetPage {build() {Column() {Button('选择操作').onClick(() => {ActionSheet.show({title: '文件操作', //弹窗标题message: '请选择你要对该文件执行的操作', //弹窗内容autoCancel: true, //点击遮障层时,是否关闭弹窗alignment: DialogAlignment.Bottom, //弹窗位置offset: { dx: 0, dy: -20 }, //弹窗相对alignment位置的偏移量confirm: { //底部按钮value: '取消', //按钮文本内容action: () => { //按钮回调函数console.log('点击按钮取消')}},// cancel: () => { //点击遮障层关闭弹窗时的回调// console.log('点击遮障层取消')// },sheets: [ //操作选项列表{icon: $r('app.media.icon_copy'), //图标title: '复制', //文本action: () => { //回调console.log('复制文件')}},{icon: $r('app.media.icon_cut'),title: '剪切',action: () => {console.log('剪切文件')}},{icon: $r('app.media.icon_delete'),title: '删除',action: () => {console.log('删除文件')}}]})})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}
选择器弹窗
概述
选择器弹窗用于让用户从一个列表中选择一个具体的值。ArkTS内置了多种选择器弹窗,例如文本选择器、日期选择器、时间选择器等等,各选择器效果如下
TextPickerDialog(文本滑动选择器弹窗)

给出一个案例
@Entry
@Component
struct TextPickerDialogPage {fruits: string[] = ['苹果', '橘子', '香蕉', '鸭梨', '西瓜']@State selectedIndex: number = 0build() {Column({ space: 50 }) {Text(this.fruits[this.selectedIndex]).fontWeight(FontWeight.Bold).fontSize(30)Button("选择文本").margin(20).onClick(() => {TextPickerDialog.show({range: this.fruits, //设置文本选择器的选择范围selected: this.selectedIndex, //设置选中的索引onAccept: (value: TextPickerResult) => { //确定按钮的回调函数this.selectedIndex = value.index;},onCancel: () => { //取消按钮的回调函数console.info('取消选择')},onChange: (value: TextPickerResult) => { //选择器选中内容发生变化时触发的回调函数console.info(`当前文本:${JSON.stringify(value)}`)}})})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}
DatePickerDialog(日期滑动选择期弹窗)

给出一个案例
@Entry
@Component
struct DatePickerDialogPage {@State date: Date = new Date("2010-1-1");build() {Column({ space: 50 }) {Text(`${this.date.getFullYear()}年${this.date.getMonth() + 1}月${this.date.getDate()}日`).fontWeight(FontWeight.Bold).fontSize(30)Button("选择日期").margin(20).onClick(() => {DatePickerDialog.show({start: new Date("2000-1-1"), //设置选择器的其实日期end: new Date("2100-12-31"), //设置选择器的结束日期selected: this.date, //设置当前选中的日期onAccept: (value: DatePickerResult) => { //确定按钮的回调this.date.setFullYear(value.year, value.month, value.day)},onCancel: () => { //取消按钮的回调console.info('取消选择')},onChange: (value: DatePickerResult) => { //选择器当前内容发生变化时触发的回调函数console.info(`当前日期:${JSON.stringify(value)}`)}})})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}
TimePickerDialog(时间滑动选择器弹窗)

给出一个案例
@Entry
@Component
struct TimePickerDialogPage {@State time: Date = new Date('2020-01-01T00:00:00')build() {Column({ space: 50 }) {Text(`${this.time.getHours()}:${this.time.getMinutes()}`).fontWeight(FontWeight.Bold).fontSize(30)Button("选择时间").margin(20).onClick(() => {TimePickerDialog.show({selected: this.time, //设置当前选中的时间useMilitaryTime: true, //是否使用24小时制onAccept: (value: TimePickerResult) => { //确认按钮的回调this.time.setHours(value.hour, value.minute);},onCancel: () => { //取消按钮的回调console.info('取消选择')},onChange: (value: TimePickerResult) => { //选择器当前内容发生变化时触发的回调函数console.info(`当前时间:${JSON.stringify(value)}`)}})})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}
使用说明
具体用法可参考相关案例或者官方文档,各选择器的官方文档地址如下
类型 文档地址
TextPickerDialog(文本滑动选择器弹窗) 官方文档
DatePickerDialog(日期滑动选择期弹窗) 官方文档
TimePickerDialog(时间滑动选择器弹窗) 官方文档
自定义弹窗
概述
当现有组件不满足要求时,可考虑自定义弹窗,自定义弹窗允许开发者自定义弹窗内容和样式。例如

给出一个示例
@Entry
@Component
struct CustomDialogPage {@State answer: string = '?'controller: CustomDialogController = new CustomDialogController({builder: TextInputDialog({confirm: (value) => {this.answer = value;}}),alignment: DialogAlignment.Bottom,offset: { dx: 0, dy: -30 }})build() {Column({ space: 50 }) {Row() {Text('1+1=').fontWeight(FontWeight.Bold).fontSize(30)Text(this.answer).fontWeight(FontWeight.Bold).fontSize(30)}Button('作答').onClick(() => {this.controller.open();})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}@CustomDialog
struct TextInputDialog {controller: CustomDialogController = new CustomDialogController({ builder: TextInputDialog() })confirm: (value: string) => void;value: string = '';build() {Column({ space: 20 }) {Text('请输入你的答案')TextInput({ placeholder: '请输入数字' }).type(InputType.Number).onChange((value) => {this.value = value;})Row({ space: 50 }) {Button('取消').onClick(() => {this.controller.close();})Button('确认').onClick(() => {this.confirm(this.value);this.controller.close();})}}.padding(20)}
}
使用说明
显示自定义弹窗需要使用CustomDialogController,具体用法可参考相关案例或者官方文档。
相关文章:
【鸿蒙HarmonyOS开发笔记】常用组件介绍篇 —— 弹窗组件
简介 弹窗是移动应用中常见的一种用户界面元素,常用于显示一些重要的信息、提示用户进行操作或收集用户输入。ArkTS提供了多种内置的弹窗供开发者使用,除此之外还支持自定义弹窗,来满足各种不同的需求。 下面是所有涉及到的弹窗组件官方文档…...
【嵌入式学习】Qtday03.21
一、思维导图 二、练习 自由发挥登录窗口的应用场景,实现一个登录窗口界面。(不要使用课堂上的图片和代码,自己发挥,有利于后面项目的完成) 要求: 1. 需要使用Ui界面文件进行界面设计 2. ui界面上的组件…...
【C语言】C语言运算符优先级详解
文章目录 📝前言🌉运算符优先级简述 🌠逻辑与和逻辑或🌉赋值和逗号运算符 🌠位运算🌉条件表达式🌉位运算与算术运算结合🌉混合使用条件表达式和赋值运算符🌉 逗号运算符的…...
第十节HarmonyOS 常用容器组件3-GridRow
1、描述 栅格容器组件,仅可以和栅格子组件(GridCol)在栅格布局场景中使用。 2、子组件 可以包含GridCol子组件。 3、接口 GridRow(options:{columns: number | GridRowColumnOption, gutter?: Length | GutterOption, Breakpoints?: B…...
SCXI-1193是National Instruments公司生产的吗?
NI SCXI-1193是一款高密度、32通道RF多路复用器开关模块。 NI SCXI-1193 是一款由 National Instruments(NI)公司生产的屏蔽式电缆。这款电缆通常用于连接数据采集设备和传感器或执行器,以实现信号传输和数据采集。SCXI-1193 电缆具有高度灵活…...
使用clion开发tftlcd屏,移植驱动时遇到的问题记录
问题现象 屏幕只有一半屏在刷新 问题出现的情况(在CLION开发时遇到过) 总结...
工程信号的去噪和(分类、回归和时序)预测
🚀【信号去噪及预测论文代码指导】🚀 还为小论文没有思路烦恼么?本人专注于最前沿的信号处理与预测技术——基于信号模态分解的去噪算法和深度学习的信号(回归、时序和分类)预测算法,致力于为您提供最精确、…...
【VUE】前端阿里云OSS断点续传,分片上传
什么是OSS: 数据以对象(Object)的形式存储在OSS的存储空间(Bucket )中。如果要使用OSS存储数据,您需要先创建Bucket,并指定Bucket的地域、访问权限、存储类型等属性。创建Bucket后,您…...
春招面试高频题目总结
面试问题 redis 可以用于进程间通信吗? Why?How? ---> 延展一下 有哪些进程间通信技术, 优劣如何? 有大量的插入sql语句,一条条的插入性能很差,如何通过事务进行优化? 保证线程安全的策略有哪些&…...
基于SSM+Jsp+Mysql的KTV点歌系统
基于SSMJspMysql的KTV点歌系统 基于SSMJspMysql的KTV点歌系统的设计与实现 开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工…...
Docker Oracle提示密码过期
进入docker docker exec -it oracle bash 修改环境变量文件 vi .bash_profile 为以下内容 # .bash_profile# Get the aliases and functions if [ -f ~/.bashrc ]; then. ~/.bashrc fi# User specific environment and startup programsPATH$PATH:$HOME/binexport PATH expo…...
5.3、【AI技术新纪元:Spring AI解码】图像生成API
Spring 图像生成API Spring图像生成API旨在提供一个简单且便携的接口,用于与各类专注于图像生成的AI模型交互,使开发者能够在不同图像相关模型之间轻松切换,只需对代码进行最少的改动。这一设计遵循了Spring框架的模块化和可互换性理念,确保开发人员能够快速调整其应用程序…...
自营、入驻商城小程序开发
IT外包的隐形重负——沟通成本:当客户仅能提供大致需求,而IT公司则机械地执行,往往会导致项目细节中充满漏洞,用户体验大打折扣。 最终,项目不断延期,进度一拖再拖。探究其根源,客户往往并非IT…...
C++关键字:const
文章目录 一、const的四大作用1.修饰 变量、数组2.修饰 函数的形参、修饰 引用 (最常用)3.修饰 指针:常量指针、指针常量 、只读指针4.修饰 类的成员函数、修饰 类的对象 一、const的四大作用 1.修饰 变量、数组 1.const修饰变量: 被const修…...
nodejs 常用命令
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,常用于服务器端编程。以下是一些 Node.js 的常用命令 1、安装 Node.js: 通常,你会从 Node.js 的官方网站下载并安装适合你操作系统的版本。安装完成后,你可以在命令行中…...
nginx配置详解+nginx_lua模块的使用
nginx基本配置详解 目录 nginx基本配置详解 nginx_lua模块使用方式 openresty介绍与安装 lua基本语法使用 全局配置: user:指定Nginx主进程运行的用户。在下方示例中,Nginx将以root用户身份运行。worker_processes:指定Ngi…...
大数据--hdfs--java编程
环境: virtualbox ubantu1604 Linux idea社区版2023 jdk1.8 hadoop相关依赖 使用java操作 1. 判断/user/stu/input/test.txt文件是否存在,存在则读出文件内容,打印在控制台上。反之,输出“文件不存在”。 package abc;impo…...
力扣由浅至深 每日一题.10 最后一个单词的长度
日子都是崭新的,我们下一章见 ——24.3.21 最后一个单词的长度 给你一个字符串 s,由若干单词组成,单词前后…...
21 OpenCV 直方图均衡化
文章目录 直方图概念均衡的目的equalizeHist 均衡化算子示例 直方图概念 图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。 均衡的目的…...
对七层代理、四层代理、正向代理、反向代理的认识
一、理解nginx服务代理 Nginx代理有正向和反向代理两种类型,可以基于osi七层模型中的第四层(传输层)和第七层(应用层)进行代理 注: nginx 一般支持的是7层代理,支持四层代理一般使用 lvs 或者ha…...
Qwen3-0.6B-FP8对比实测:轻量级模型部署体验,vLLM+Chainlit方案真香
Qwen3-0.6B-FP8对比实测:轻量级模型部署体验,vLLMChainlit方案真香 1. 轻量级模型部署新选择 在AI应用快速落地的今天,如何在有限的计算资源上高效部署语言模型成为开发者面临的核心挑战。传统大模型动辄数十GB的显存需求让许多中小企业和个…...
卡证检测矫正模型在政务场景的应用:自动化表单信息录入系统
卡证检测矫正模型在政务场景的应用:自动化表单信息录入系统 每次去办事大厅,最头疼的是什么?对我来说,就是填表。身份证、户口本、房产证……一堆证件摆在面前,工作人员要一张张看,一个个字往电脑里敲。队…...
剧本创作新选择:如何用Trelby免费开源软件提升写作效率
剧本创作新选择:如何用Trelby免费开源软件提升写作效率 【免费下载链接】trelby The free, multiplatform, feature-rich screenwriting program! 项目地址: https://gitcode.com/gh_mirrors/tr/trelby 你是否曾为剧本格式调整而烦恼?是否在寻找一…...
对未来十年技术发展的预测
未来十年技术发展:颠覆与重构的黄金时代 科技的迭代速度正以指数级增长,未来十年或将迎来人类历史上最具颠覆性的技术变革。从人工智能的自我进化到量子计算的实用化突破,从生物科技的基因重塑到能源技术的零碳革命,技术边界将被…...
Java的java.lang.runtime.ObjectMethods记录类方法自动生成的底层机制
Java记录类方法自动生成的底层机制探秘 在Java 14中引入的记录类(Record)简化了不可变数据载体的定义,而其背后的java.lang.runtime.ObjectMethods类则是实现自动生成equals()、hashCode()和toString()等核心方法的关键。这一机制通过编译时…...
使用 C# 删除 PDF 中的数字签名票
一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...
GLM-4.1V-9B-Base赋能运维:AI智能日志分析与故障预警系统构建
GLM-4.1V-9B-Base赋能运维:AI智能日志分析与故障预警系统构建 1. 运维场景的痛点与机遇 在传统IT运维工作中,工程师们每天需要面对海量的服务器日志和监控数据。这些数据通常以两种形式存在:一种是纯文本格式的日志文件,另一种是…...
【AI原生研发黄金标准】:20年架构师亲授7步构建高鲁棒性机器学习流水线(附Gartner验证的CI/CD-ML双轨模型)
第一章:AI原生研发范式的本质跃迁 2026奇点智能技术大会(https://ml-summit.org) AI原生研发范式并非对传统软件工程的渐进优化,而是一场以模型为中心、数据为燃料、反馈为闭环的认知重构。它将AI能力从“辅助工具”升维为系统架构的默认构件——开发流…...
arcgis-利用融合与排序工具高效提取图斑面积最大属性值
1. 为什么需要提取图斑面积最大属性值 在GIS数据处理中,经常会遇到这样的需求:我们需要从复杂的图斑数据中找出每个区域占面积最大的属性值。比如在国土调查中,一个地块可能包含多种房屋质量等别,但我们需要确定该地块最主要的房…...
(十八)32天GPU测试从入门到精通-TensorRT-LLM 部署与优化day16
目录 引言TensorRT-LLM 环境搭建模型优化与编译多 GPU 推理量化优化性能实测生产部署常见问题排查 引言 TensorRT-LLM 是NVIDIA 官方的 LLM 推理优化库,提供业界领先的性能和完整的优化技术栈。作为 NVIDIA 生态的一部分,TensorRT-LLM 深度整合了 NVID…...
