当前位置: 首页 > news >正文

HarmonyOS 6 Popup 气泡弹窗组件使用文档

文章目录

    • 概述
    • 导入模块
    • 核心结构
    • 配置类型
      • 1. PopupIconOptions 图标配置
      • 2. PopupTextOptions 文本配置(标题/正文通用)
      • 3. PopupButtonOptions 按钮配置
      • 4. Popup 全局常用属性
    • 示例代码
    • 代码逐段解析
      • 1. 外层容器
      • 2. 图标配置
      • 3. 标题配置
      • 4. 正文配置
      • 5. 关闭按钮控制
      • 6. 底部双按钮
    • 总结

概述

Popup 是 HarmonyOS ArkUI 提供高级气泡弹窗组件
可自定义图标、标题、正文、关闭按钮、底部双按钮,支持样式定制、点击回调、最大宽度设置、布局镜像等能力,常用于提示弹窗、确认弹窗、功能气泡提示等业务场景。

导入模块

使用 Popup 必须先导入对应 ArkUI 类型:

import { Popup, PopupTextOptions, PopupButtonOptions, PopupIconOptions } from '@kit.ArkUI';

核心结构

  1. icon:弹窗顶部图标(PopupIconOptions)
  2. title:弹窗标题文本(PopupTextOptions)
  3. message:弹窗内容描述文本(PopupTextOptions)
  4. showClose / onClose:关闭按钮与关闭回调
  5. buttons:底部确认/取消双按钮(最多支持两个)

配置类型

1. PopupIconOptions 图标配置

属性说明
image图标资源,支持本地app.media资源
width / height图标宽高尺寸
fillColorSVG 图标填充色
borderRadius图标圆角

2. PopupTextOptions 文本配置(标题/正文通用)

属性说明
text显示文本内容
fontSize字体大小
fontColor字体颜色
fontWeight字体粗细

注意:message 文本不支持设置 fontWeight。

3. PopupButtonOptions 按钮配置

属性说明
text按钮文字
action点击回调事件
fontSize按钮文字大小
fontColor按钮文字颜色

4. Popup 全局常用属性

属性说明
showClose是否显示右上角关闭按钮,示例设为 false 隐藏
onClose关闭按钮点击回调
buttons底部操作按钮数组,最多 2 个

示例代码

// xxx.ets import { Popup, PopupTextOptions, PopupButtonOptions, PopupIconOptions } from '@kit.ArkUI'; @Entry @Component struct PopupExample { build() { Row() { // 气泡弹窗组件 Popup({ // 顶部图标配置 icon: { image: $r('app.media.start'), width: 32, height: 32, fillColor: Color.White, borderRadius: 16 } as PopupIconOptions, // 弹窗标题 title: { text: 'This is a popup with PopupOptions', fontSize: 20, fontColor: Color.Black, fontWeight: FontWeight.Normal } as PopupTextOptions, // 弹窗正文内容 message: { text: 'This is the message', fontSize: 15, fontColor: Color.Black } as PopupTextOptions, // 隐藏关闭按钮 showClose: false, // 关闭按钮回调(隐藏仍可配置) onClose: () => { console.info('close Button click'); }, // 底部双按钮:确认 + 取消 buttons: [{ text: 'confirm', action: () => { console.info('confirm button click'); }, fontSize: 15, fontColor: Color.Black, }, { text: 'cancel', action: () => { console.info('cancel button click'); }, fontSize: 15, fontColor: Color.Black },] as [PopupButtonOptions?, PopupButtonOptions?] }) } .width(300) .height(200) .borderWidth(2) .justifyContent(FlexAlign.Center) } }

运行效果如图:

代码逐段解析

1. 外层容器

Row() .width(300) .height(200) .borderWidth(2) .justifyContent(FlexAlign.Center)

外层 Row 设置固定宽高、边框、居中,作为弹窗承载容器。

2. 图标配置

icon: { image: $r('app.media.start'), width: 32, height: 32, fillColor: Color.White, borderRadius: 16 } as PopupIconOptions
  • 引用本地图标资源
  • 固定 32×32 尺寸
  • 设置白色填充、16px 圆角圆形图标

3. 标题配置

title: { text: 'This is a popup with PopupOptions', fontSize: 20, fontColor: Color.Black, fontWeight: FontWeight.Normal } as PopupTextOptions

自定义标题文字、字号、颜色、常规字重。

4. 正文配置

message: { text: 'This is the message', fontSize: 15, fontColor: Color.Black } as PopupTextOptions

设置弹窗描述文案,字号小于标题,层级区分明显。

5. 关闭按钮控制

showClose: false, onClose: () => { console.info('close Button click'); }

showClose: false隐藏右上角关闭按钮;
仍可保留 onClose 回调,后续改为 true 即可直接复用。

6. 底部双按钮

buttons: [ { text: 'confirm', 点击打印确认日志 }, { text: 'cancel', 点击打印取消日志 } ]

最多支持两个按钮,分别绑定点击业务回调,适合确认弹窗场景。

总结

  1. 图标资源$r('app.media.start')需要开发者自行替换项目内图片资源;
  2. buttons 最多只能传2 个,超出无效;
  3. message 文本不支持fontWeight设置;
  4. 该组件不支持穿戴设备,在手机、平板、PC、大屏可正常使用;
  5. 支持 API 11 及以上,元服务从 API 12 开始支持。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力

http://www.jsqmd.com/news/952957/

相关文章:

  • 智能结对编程:如何利用快马AI辅助优化ayx·爱游戏网页弹球项目的代码与性能
  • SpringBoot+Vue服装销售管理系统源码+论文
  • 2026年知名的光伏支架实力工厂推荐 - 行业平台推荐
  • 2026年口碑好的厂区移动雨棚/阳光棚/推拉篷/手动推拉篷优质公司推荐 - 品牌宣传支持者
  • 高效HEIC缩略图方案:Windows HEIC Thumbnail Provider技术解析
  • IM-PINN:基于内禀度量的物理信息神经网络在反应扩散系统中的应用
  • 在LVM上安装Gbase 8S
  • 除了verify=False,安全处理requests库SSL证书验证的3种更优实践(附避坑指南)
  • SQL内核修炼:ICU 医疗监护 — 多设备“危险重叠期”识别 | 详解扫描线算法
  • HarmonyOS 6 AtomicServiceTabs 纯图标样式使用文档
  • 数据科学家不是建模工程师:一份真实工作流的生存手记
  • XUnity.AutoTranslator架构深度解析:Unity游戏实时翻译引擎的技术实现
  • 基于微信小程序的复习计划管理系统源码+论文
  • 亲测能降到0%!免费降AI率靠谱吗?10款工具实测,论文降AIGC必看 - agihub
  • 数据科学中的推断统计实战:从AB测试到置信区间
  • 从外卖配送区到共享单车电子围栏:JTS实战解析空间关系判断(Contains/Within/Intersects)
  • 别再手动算CRC了!用STM32CubeMX的硬件CRC模块,5分钟搞定数据校验
  • HarmonyOS 6 AtomicServiceTabs 图标加文本(自定义图文排布)使用文档
  • SpringBoot+Vue高校机动车认证信息管理系统源码+论文
  • 免费降重工具精选:AI智能改写高效降低重复率 - 仙仙学姐测评
  • Python map、filter、zip 三大函数式核心用法与工程实践
  • 别再踩坑了!手把手教你用Selenium驱动360极速浏览器(附版本匹配避坑指南)
  • 企业级AI分类系统上线倒计时72小时:紧急补漏清单(含权限穿透、语义漂移、冷启动三重熔断机制)
  • 社区搜索技术:从同质图到异质图的算法演进
  • SpringBoot+Vue高校教室设备故障报修信息管理系统源码+论文
  • 2026年评价高的光伏支架主流厂家对比评测 - 品牌宣传支持者
  • 2026年口碑好的舟山工业园区/定海工业园区/浙江工业园区热门排行榜 - 行业平台推荐
  • 从数电实验箱到FPGA开发板:重温74LS138三八译码器,并用它搭建全加器电路
  • 别再手动修模型了!用Python的scipy.spatial.Delaunay快速搞定点云三角化(附实战代码)
  • PhysicsFormer:Transformer在物理信息神经网络中的创新应用