当前位置: 首页 > 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.gsyq.cn/news/1464572.html

相关文章:

  • 高效HEIC缩略图方案:Windows HEIC Thumbnail Provider技术解析
  • HarmonyOS 6 AtomicServiceTabs 纯图标样式使用文档
  • 除了verify=False,安全处理requests库SSL证书验证的3种更优实践(附避坑指南)
  • 数据科学家不是建模工程师:一份真实工作流的生存手记
  • 数据科学中的推断统计实战:从AB测试到置信区间
  • 从外卖配送区到共享单车电子围栏:JTS实战解析空间关系判断(Contains/Within/Intersects)
  • 企业级AI分类系统上线倒计时72小时:紧急补漏清单(含权限穿透、语义漂移、冷启动三重熔断机制)
  • 社区搜索技术:从同质图到异质图的算法演进
  • MTKClient终极指南:联发科设备刷机救砖专业工具详解
  • 从数电实验箱到FPGA开发板:重温74LS138三八译码器,并用它搭建全加器电路
  • 别再手动修模型了!用Python的scipy.spatial.Delaunay快速搞定点云三角化(附实战代码)
  • 从HFSS仿真到PCB打样:手把手教你搞定四臂螺旋天线的移相功分网络
  • 别再凭感觉绕电感了!手把手教你用200股李兹线给T106-2磁环绕制4.5uH电感(附计算与实测翻车记录)
  • 面试必问!!!:整数在计算机中是怎么保存的?
  • Java:Java后端开发,本地开发环境,服务器部署环境,运维支撑环境 都需要哪些类别的工具或技术 / Java后端三大环境完整清单 202606
  • 论文AIGC率怎么降?2026实测SpeedAI领跑多平台横评 - 仙仙学姐测评
  • Inference与Prediction的本质区别:从机器学习工程实践看系统层与算法层的分界
  • 115. 全机型救砖方案汇总|高通EDL/MTK刷写/苹果DFU黑砖修复实操教程
  • 2026年靠谱的郑州家装淋浴房/淋浴房/郑州成品淋浴房/郑州民宿淋浴房高口碑品牌推荐 - 品牌宣传支持者
  • 从充电场站到干线物流:千方 ESG 报告里的多场景节能探索
  • 快速验证物联网想法:用快马一键生成esp8266 wifi连接原型代码
  • TradingAgents 新手快速上手指南
  • 从游戏地形到有限元分析:深入理解Delaunay三角剖分的‘空圆’特性为什么这么重要
  • iOS 开发面试 50 个高频易混淆知识点详解
  • 稀土功能高分子在涂层涂料领域的应用浅析
  • 从SJA1000到现代MCU:聊聊CAN控制器硬件架构的演变与选型
  • 搞地图开发必懂的坐标系‘黑话’:WGS84、GCJ02、BD09、CGCS2000到底啥关系?
  • 除了Java,用Python/Node.js也能解密抖音用户手机号?
  • Day 1 :项目全景 + 第一条完整后端链路
  • C++学习笔记系列1-3