【鸿蒙 HarmonyOS NEXT】popup弹窗

一、背景

给组件绑定popup弹窗,并设置弹窗内容,交互逻辑和显示状态。

常见场景:点击按钮弹出popup弹窗,并对弹窗的内容进行交互逻辑处理,如:弹窗内点击跳转到其他页面

二、给组件绑定Popup弹窗

PopupOptions类型说明

名称类型必填描述
messagestring

弹窗信息内容。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

placementOnTop(deprecated)boolean

是否在组件上方显示,默认值为false。

说明:

从 API version 10 开始废弃,建议使用placement替代。

primaryButton

{

value: string,

action: () => void

}

第一个按钮。

value: 弹窗里主按钮的文本。

action: 点击主按钮的回调函数。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

secondaryButton

{

value: string,

action: () => void

}

第二个按钮。

value: 弹窗里辅助按钮的文本。

action: 点击辅助按钮的回调函数。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

onStateChange(event: { isVisible: boolean }) => void

弹窗状态变化事件回调,参数isVisible为弹窗当前的显示状态。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

arrowOffset9+Length

popup箭头在弹窗处的偏移。箭头在气泡上下方时,数值为0表示箭头居最左侧,偏移量为箭头至最左侧的距离,默认居中。箭头在气泡左右侧时,偏移量为箭头至最上侧的距离,默认居中。如果显示在屏幕边缘,气泡会自动左右偏移,数值为0时箭头始终指向绑定组件。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

showInSubWindow9+boolean

是否在子窗口显示气泡,默认值为false。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

mask10+boolean | { color : ResourceColor }

设置气泡是否有遮罩层及遮罩颜色。如果设置为false,则没有遮罩层;如果设置为true,则设置有遮罩层并且颜色为透明色;如果设置为Color,则为遮罩层的颜色。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

messageOptions10+PopupMessageOptions

设置弹窗信息文本参数。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

targetSpace10+Length

设置popup与目标的间隙。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

placement10+Placement

设置popup组件相对于目标的显示位置,默认值为Placement.Bottom。

如果同时设置了placementOnTop和placement,则以placement的设置生效。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

offset10+Position

设置popup组件相对于placement设置的显示位置的偏移。

说明:

不支持设置百分比。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

enableArrow10+boolean

设置是否显示箭头。

默认值:true

说明:

当页面可用空间无法让气泡完全避让时,气泡会覆盖到组件上并且不显示箭头。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

popupColor11+Color | string | number | Resource

提示气泡的颜色。如需去除模糊背景填充效果,需将backgroundBlurStyle设置为BlurStyle.NONE。

默认值:透明色TRANSPARENT加模糊背景填充效果COMPONENT_ULTRA_THICK。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

autoCancel11+boolean

页面有操作时,是否自动关闭气泡。

默认值:true

元服务API: 从API version 12开始,该接口支持在元服务中使用。

width11+Dimension

弹窗宽度。

说明:

showInSubWindow=true时最大高度为设备屏幕高度,showInSubWindow=false时最大高度为应用窗口高度。高度限定逻辑=最大高度-状态栏高度(没有时高度为0)-dock栏高度(没有时高度为0)-40VP-40VP。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

arrowPointPosition11+ArrowPointPosition

气泡尖角相对于父组件显示位置,气泡尖角在垂直和水平方向上有 ”Start“、”Center“、”End“三个位置点可选。以上所有位置点均位于父组件区域的范围内,不会超出父组件的边界范围。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

arrowWidth11+Dimension

设置箭头宽度。若所设置的箭头宽度超过所在边的长度减去两倍的气泡圆角大小,则不绘制气泡箭头。

默认值:16.0_vp

说明:

不支持设置百分比。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

arrowHeight11+Dimension

设置箭头高度。

默认值:8.0_vp

说明:

不支持设置百分比。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

radius11+Dimension

设置气泡圆角半径。

默认值:20.0_vp

元服务API: 从API version 12开始,该接口支持在元服务中使用。

shadow11+ShadowOptions | ShadowStyle

设置气泡阴影。

默认值:ShadowStyle.OUTER_DEFAULT_MD

元服务API: 从API version 12开始,该接口支持在元服务中使用。

backgroundBlurStyle11+BlurStyle

设置气泡模糊背景参数。

默认值:BlurStyle.COMPONENT_ULTRA_THICK

元服务API: 从API version 12开始,该接口支持在元服务中使用。

transition12+TransitionEffect

自定义设置popup弹窗显示和退出的动画效果。

说明:

1.如果不设置,则使用默认的显示/退出动效。

2.显示动效中按back键,打断显示动效,执行退出动效,动画效果为显示动效与退出动效的曲线叠加后的效果。

3.退出动效中按back键,不会打断退出动效,退出动效继续执行,back键不被响应。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

onWillDismiss12+boolean|(dismissPopupAction: DismissPopupAction) => void

设置popup交互式关闭拦截开关及拦截回调函数,默认值为true,popup响应点击、左滑/右滑、三键back。

1.当为boolean类型时,如果设置为false,则不响应点击、左滑/右滑、三键back或键盘ESC退出事件,仅当设置“弹窗显示状态”参数show值为false时才退出;如果设置为true,则正常响应退出事件;

2.如果设置为函数类型,则拦截退出事件且执行回调函数。

说明:

在onWillDismiss回调中,不能再做onWillDismiss拦截。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

三、具体实现

代码:

@Extend(Text)
function PopupTextStyle() {.fontSize(14).fontColor('#222427').lineHeight(16)
}
@Entry
@Component
struct PopupExample {@State customPopup: boolean = false; //定义变量控制弹窗显示controller: TabsController = new TabsController()build() {Column(){Image($r('app.media.navImg')).width(100).onClick(()=>{this.customPopup = !this.customPopup;}).bindPopup(this.customPopup, {builder: this.popupBuilder,placement: Placement.Bottom,mask: { color: '#80000000' },popupColor: Color.White,enableArrow: true, //是否显示箭头arrowPointPosition: ArrowPointPosition.CENTER, //气泡尖角位置arrowWidth: 13, //箭头宽度arrowHeight: 10, //箭头高度radius: 4,offset: {x:-5, y: -8 },onStateChange: (e) => {if (!e.isVisible) {this.customPopup = false;}}})}.layoutWeight(1).width('100%').backgroundColor('#f0f2f4')}//popup构造器定义弹框内容@BuilderpopupBuilder() {Column({ space: 16 }) {Text('首页').PopupTextStyle().onClick(()=>{console.log('lucy== 11')})Text('购物车').PopupTextStyle().onClick(()=>{console.log('lucy== 22')})Text('分类').PopupTextStyle().onClick(()=>{console.log('lucy== 33')})}.alignItems(HorizontalAlign.Start).width(74).padding({ top: 16, bottom: 16, left: 16 })}
}

效果:

点击图片出现弹窗,弹窗内点击内容进行交互处理

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Python报错已解决】 TypeError: Descriptors cannot not be created directly

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

Android RecycleView 深度解析与面试题梳理

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 引言 在 Android 开发中,列表和网格布局是非常常见的界面元素,它们用于展示大量数据集合。RecyclerView 是 Android 提…

深度学习|损失函数:网络参数优化基准

文章目录 引言均方误差计算示例矩阵形式代码实现 交叉熵误差计算示例代码实现 绝对误差计算示例代码实现 Hinge Loss计算示例代码实现 Kullback-Leibler Divergence计算示例代码实现 结语 引言 在上文「深度学习|模型训练:手写 SimpleNet」中&#xff0…

Nodejs+vue+Express游戏分享网站的设计与实现 7a2s2

目录 技术栈具体实现截图系统设计思路技术可行性nodejs类核心代码部分展示可行性论证研究方法解决的思路Express框架介绍源码获取/联系我 技术栈 该系统将采用B/S结构模式,开发软件有很多种可以用,本次开发用到的软件是vscode,用到的数据库是…

Flink垃圾图片分类优胜奖比赛攻略_贪吃的小香猪-148队

关联比赛: Apache Flink极客挑战赛——垃圾图片分类 一. 赛题背景分析及理解 本次竞赛要求结合大数据计算引擎Flink和深度学习的计算平台Intel Analytics Zoo应用在图片识别场景,进行垃圾图片的分类。 目标:对提供的100类大约6000张垃圾图片进行模型训…

五星级可视化页面(30):本系列最后一期,压轴出场。

不知不觉分享了30期高品质的五星级可视化大屏界面,该系列文章也该收尾了,本期为大家分享最后一批界面,我们下一个系列专辑见。

A股上市公司企业创新能力、质量、效率-原始数据+dofile+结果(2006-2023年)

上市公司的创新能力体现在其不断研发新技术、新产品和服务的能力上,这是企业保持竞争优势的关键;质量则是指公司所提供的产品或服务达到高标准的程度,高质量是赢得客户信任和市场份额的基础;效率则涵盖了生产运营中的资源利用程度…

智能车镜头组入门(一)车模的选择

这篇文章,我会简单的介绍下车模的、轮胎和负压的选择 今年的镜头组是自制车模,这比较考验学校之前参赛的经验。我们选择了某飞的mini车模。提供智能车方案的无非就两家,某飞和某邱,我们学校之前都用的是某飞的,在某飞…

鸿蒙Harmony应用开发,数据驾驶舱 项目结构搭建

对于一个项目而言,在拿到我们的开发任务后,我们最重要的就是技术的选型。选型定下来了之后我们便开始脚手架的搭建,然后开始撸代码,开搞. 首先我们需要对一些常见依赖库的引入 我们需要再oh-package.json5的dependencies节点下面…

leetcode:最高乘法得分

用auto可以过 class Solution { public:long long maxScore(vector<int>& a, vector<int>& b) {int n b.size();vector<vector<long long>> memo(4,vector<long long>(b.size(), LLONG_MIN));auto dfs [&](auto&& dfs, i…

Qt安卓开发连接手机调试(红米K60为例)

1.前置条件 本人默认您已经完成Qt安卓环境的配置&#xff0c;若还没配置请参考链接文章&#xff1a;【Qt】最详细教程&#xff0c;如何从零配置Qt Android安卓环境_qt_七夕先生-开放原子开发者工作坊。准备一台目前主流在用的手机&#xff0c;其实自己用的就行(只要你不是某些…

LeetCode-137. 只出现一次的数字 II【位运算 数组】

LeetCode-137. 只出现一次的数字 II【位运算 数组】 题目描述&#xff1a;解题思路一&#xff1a;解题思路二&#xff1a;符号位一起判断。背诵版解题思路三&#xff1a;0 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每…

CentOS7.9环境上NFS搭建及使用

Linux环境NFS搭建及使用 1. 服务器规划2. NFS服务器配置2.1 主机名设置2.2 nfs安装2.2.1 repo文件替换2.2.2 NFS服务安装 2.3 nfs配置2.4 服务查看2.5 资源发布2.6 配置nfs服务开机自启2.7 端口开放 3.应用服务器配置3.1 主机名设置3.2 nfs安装3.2.1 repo文件替换3.2.2 NFS服务…

XML映射器-高级查询结果映射

01-高级查询结果映射 emp表 dept表 02-多表关联查询映射 多对一映射 项目中Emp类的数据 项目中dept类的数据 想要多表查询需要建个公共类里面写入两个表中的属性,如下面方法 type里要写用到的类型,由于继承Emp所有Emp里面的属性直接写,column是写数据库的别字,property是写字…

WSL中使用AMBER GPU串行版

前提是已经安装过wsl 1 在 WSL 2 中启用 NVIDIA CUDA 参考在 WSL 2 上启用 NVIDIA CUDA | Microsoft Learn 注意&#xff1a;勿在 WSL 中安装任何 Linux 显示驱动程序。Windows 显示驱动程序将同时安装本机 Windows 和 WSL 支持的常规驱动程序组件。 2 在WSL2中配置Cuda 不安…

SEO之页面优化(一-页面标题2)

初创企业搭建网站的朋友看1号文章&#xff1b;想学习云计算&#xff0c;怎么入门看2号文章谢谢支持&#xff1a; 1、我给不会敲代码又想搭建网站的人建议 2、“新手上云”能够为你开启探索云世界的第一步 博客&#xff1a;阿幸SEO~探索搜索排名之道 &#xff08;接上一篇。。…

Fiddler抓包工具实战

文章目录 &#x1f7e2; Fiddler入门到精通&#x1f449;主要功能&#x1f449;使用场景 &#x1f7e2; 一、Fiddler抓包和F12抓包对比&#x1f7e2; 二、Fiddler的核心功能&#x1f7e2; 三、Fiddler的工作原理&#x1f7e2; 四、Fiddler功能配置使用&#x1f449;规则设置&am…

信息学奥赛报考指南

近年来&#xff0c;信息学奥林匹克竞赛&#xff08;NOI&#xff09;越来越受到家长和学生的重视。这项竞赛不仅能培养孩子的编程与算法思维&#xff0c;还为优秀的选手提供了进入国内顶尖大学的保送资格&#xff0c;并有机会参加国际级赛事。因此&#xff0c;许多家长都希望了解…

Microsoft Office LTSC 2024 离线安装ISO镜像

微软近日正式发布了 Microsoft Office 2024 LTSC&#xff08;长期服务版本&#xff09;&#xff0c;为那些不适用订阅模式的企业提供了最新的 Office 版本。LTSC 版本专为需要稳定、长期支持的用户设计&#xff0c;适合需要长期部署在特定硬件环境中的企业或组织。 ​从Office …

2024年【四川省安全员B证】新版试题及四川省安全员B证考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 四川省安全员B证新版试题参考答案及四川省安全员B证考试试题解析是安全生产模拟考试一点通题库老师及四川省安全员B证操作证已考过的学员汇总&#xff0c;相对有效帮助四川省安全员B证考试试卷学员顺利通过考试。 1、…