鸿蒙5.0开发进阶:UI开发常用组件-气泡提示 (Popup)

OpenHarmony实战开发-如何实现显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。 Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。主要用于屏幕录制、信息弹出提醒等显示状态。 阅读详情

Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。主要用于屏幕录制、信息弹出提醒等显示状态。

气泡分为两种类型,一种是系统提供的气泡PopupOptions,一种是开发者可以自定义的气泡CustomPopupOptions。其中PopupOptions为系统提供的气泡,通过配置primaryButton、secondaryButton来设置带按钮的气泡。CustomPopupOptions通过配置builder参数来设置自定义的气泡。

文本提示气泡

文本提示气泡常用于只展示带有文本的信息提示,不带有任何交互的场景。Popup属性需绑定组件,当bindPopup属性中参数show为true时会弹出气泡提示。

在Button组件上绑定Popup属性,每次点击Button按钮,handlePopup会切换布尔值,当值为true时,触发bindPopup弹出气泡。

@Entry
@Component
struct PopupExample {
  @State handlePopup: boolean = false
 
  build() {
    Column() {
      Button('PopupOptions')
        .onClick(() => {
          this.handlePopup = !this.handlePopup
        })
        .bindPopup(this.handlePopup, {
          message: 'This is a popup with PopupOptions',
        })
    }.width('100%').padding({ top: 5 })
  }
}

添加气泡状态变化的事件

通过onStateChange参数为气泡添加状态变化的事件回调,可以判断当前气泡的显示状态。

@Entry
@Component
struct PopupExample {
  @State handlePopup: boolean = false

  build() {
    Column() {
      Button('PopupOptions')
        .onClick(() => {
          this.handlePopup = !this.handlePopup
        })
        .bindPopup(this.handlePopup, {
          message: 'This is a popup with PopupOptions',
          onStateChange: (e)=> { // 返回当前的气泡状态
            if (!e.isVisible) {
              this.handlePopup = false
            }
          }
        })
    }.width('100%').padding({ top: 5 })
  }
}

带按钮的提示气泡

通过primaryButton、secondaryButton属性为气泡最多设置两个Button按钮,通过此按钮进行简单的交互,开发者可以通过配置action参数来设置想要触发的操作。

@Entry
@Component
struct PopupExample22 {
  @State handlePopup: boolean = false

  build() {
    Column() {
      Button('PopupOptions').margin({ top: 200 })
        .onClick(() => {
          this.handlePopup = !this.handlePopup
        })
        .bindPopup(this.handlePopup, {
          message: 'This is a popup with PopupOptions',
          primaryButton: {
            value: 'Confirm',
            action: () => {
              this.handlePopup = !this.handlePopup
              console.info('confirm Button click')
            }
          },
          secondaryButton: {
            value: 'Cancel',
            action: () => {
              this.handlePopup = !this.handlePopup
            }
          },
          onStateChange: (e) => {
            if (!e.isVisible) {
              this.handlePopup = false
            }
          }
        })
    }.width('100%').padding({ top: 5 })
  }
}

气泡的动画

气泡通过定义transition控制气泡的进场和出场动画效果。

// xxx.ets
@Entry
@Component
struct PopupExample {
  @State handlePopup: boolean = false
  @State customPopup: boolean = false

  // popup构造器定义弹框内容
  @Builder popupBuilder() {
    Row() {
      Text('Custom Popup with transitionEffect').fontSize(10)
    }.height(50).padding(5)
  }

  build() {
    Flex({ direction: FlexDirection.Column }) {
      // PopupOptions 类型设置弹框内容
      Button('PopupOptions')
        .onClick(() => {
          this.handlePopup = !this.handlePopup
        })
        .bindPopup(this.handlePopup, {
          message: 'This is a popup with transitionEffect',
          placementOnTop: true,
          showInSubWindow: false,
          onStateChange: (e) => {
            console.info(JSON.stringify(e.isVisible))
            if (!e.isVisible) {
              this.handlePopup = false
            }
          },
          // 设置弹窗显示动效为透明度动效与平移动效的组合效果,无退出动效
          transition:TransitionEffect.asymmetric(
            TransitionEffect.OPACITY.animation({ duration: 1000, curve: Curve.Ease }).combine(
              TransitionEffect.translate({ x: 50, y: 50 })),
            TransitionEffect.IDENTITY)
        })
        .position({ x: 100, y: 150 })

      // CustomPopupOptions 类型设置弹框内容
      Button('CustomPopupOptions')
        .onClick(() => {
          this.customPopup = !this.customPopup
        })
        .bindPopup(this.customPopup, {
          builder: this.popupBuilder,
          placement: Placement.Top,
          showInSubWindow: false,
          onStateChange: (e) => {
            if (!e.isVisible) {
              this.customPopup = false
            }
          },
          // 设置弹窗显示动效与退出动效为缩放动效
          transition:TransitionEffect.scale({ x: 1, y: 0 }).animation({ duration: 500, curve: Curve.Ease })
        })
        .position({ x: 80, y: 300 })
    }.width('100%').padding({ top: 5 })
  }
}

自定义气泡

开发者可以使用构建器CustomPopupOptions创建自定义气泡,@Builder中可以放自定义的内容。除此之外,还可以通过popupColor等参数控制气泡样式。

@Entry
@Component
struct Index {
  @State customPopup: boolean = false
  // popup构造器定义弹框内容
  @Builder popupBuilder() {
    Row({ space: 2 }) {
      Image($r("app.media.icon")).width(24).height(24).margin({ left: 5 })
      Text('This is Custom Popup').fontSize(15)
    }.width(200).height(50).padding(5)
  }
  build() {
    Column() {
      Button('CustomPopupOptions')
        .position({x:100,y:200})
        .onClick(() => {
          this.customPopup = !this.customPopup
        })
        .bindPopup(this.customPopup, {
          builder: this.popupBuilder, // 气泡的内容
          placement:Placement.Bottom, // 气泡的弹出位置
          popupColor:Color.Pink, // 气泡的背景色
          onStateChange: (e) => {
            console.info(JSON.stringify(e.isVisible))
            if (!e.isVisible) {
              this.customPopup = false
            }
          }
        })
    }
    .height('100%')
  }
}

使用者通过配置placement参数将弹出的气泡放到需要提示的位置。弹窗构造器会触发弹出提示信息,来引导使用者完成操作,也让使用者有更好的UI体验。

气泡提示(Popup)与菜单(Menu) 本文介绍了ArkUI中的气泡提示(Popup)和菜单(Menu)组件的使用方法。气泡提示分为系统提供的气泡(PopupOptions)和自定义气泡(CustomPopupOptions),支持文本提示、带按钮交互和完全自定义样式三种场景。菜单组件(Menu)可以通过bindMenu属性绑定,支持创建包含多个选项的弹出菜单。文中通过代码示例详细展示了如何实现文本气泡提示、带确认/取消按钮的气泡、长按图片弹出自定义操作菜单等功能,并介绍了手势识别的相关配置参数。这些组件为应用提供了丰富的交互方式,可用于信息提示 阅读详情

相关推荐

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:Popup控制)

ArkTS声明式开发(通用属性:Popup控制)

m0_64420071的博客 2292

华为手机设置微信气泡

设置成功后的效果图 现在开始工作! 第一步:准备好MT管理器、气泡 下载MT管理器、气泡提取码:ean5(气泡可以在月下美学公众号下) 第二步:安装好MT管理器 第三步:在华为手机的主题中,下载一个免费主题。 现在请记住下载的时间,我们一会儿通过文件的时间来判断文件。 第四步:打开MT管理器 左边找到下载气泡的文件夹,进入气泡文件中。比如下载位置在百度云盘(文件中找BaiduNetdisk) 右边找到Huawei中Themes,找刚刚下的主题(通过下载的时间来确定),并进入 我们这里需要我们通

Andy86666的博客 1万+

鸿蒙5.0进阶开发:UI开发-气泡提示(Popup)

Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。

AyomQAQ的博客 1596

cesium创建气泡弹窗

本人第一次接触cesium又刚毕业,自己也是摸着石头过河,虽然效果实现但是还有很多不足之处,简单说一下我自己的气泡弹窗思路。

qq_43124006的博客 1695

鸿蒙5.0版开发:UI框架JS组件-容器组件(popup)

气泡指示.........

m0_69424697的博客 1142

HarmonyOS核心知识点:气泡提示 (Popup)

开发者可以使用构建器CustomPopupOptions创建自定义气泡,@Builder中可以放自定义的内容。除此之外,还可以通过popupColor等参数控制气泡样式。@Entry@Component// popup构造器定义弹框内容build() {Column() {})builder: this.popupBuilder, // 气泡的内容placement:Placement.Bottom, // 气泡的弹出位置popupColor:Color.Pink, // 气泡的背景色。

wuliusan5的博客 1037

鸿蒙5.0开发进阶:UI框架-气泡提示 (Popup)

Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。

Androidbye的博客 916

鸿蒙5.0开发:ArkUI组件(Popup)

Popup组件通常用于在屏幕上弹出一个对话框或者浮动窗口。

AyomQAQ的博客 965

鸿蒙5.0开发实战案例:气泡提示 (Popup)组件解析

开发者可以使用构建器CustomPopupOptions创建自定义气泡,@Builder中可以放自定义的内容。除此之外,还可以通过popupColor等参数控制气泡样式。@Entry@Component// popup构造器定义弹框内容build() {Column() {})builder: this.popupBuilder, // 气泡的内容placement:Placement.Bottom, // 气泡的弹出位置popupColor:Color.Pink, // 气泡的背景色。

liudiaosi6的博客 716

鸿蒙HarmonyOS开发框架—学习ArkTS语言(基本语法 四(1)

自定义Popup气泡是指在设计和开发过程中,根据需求和设计风格,对Popup的样式、布局、交互等进行个性化定制的过程。通过自定义Popup气泡,可以让页面更加生动、实用、美观,提升用户体验和品牌形象。@Entry@Component// popup构造器定义弹框内容build() {Column() {})builder: this.popupBuilder, // 气泡的内容。

773

Unity2020版本使用Kinect的修复(附粒子人像互动demo)

Unity2020版本使用Kinect的修复附粒子人像互动demo工程版本及说明工程demo说明演示效果工程地址 工程版本及说明 Unity2020.1.3f1c1 因为想用(学习)jpのK神做的一些粒子效果,由于他使用的是2020的新技术故需要把Kinect插件导入进2020版本,但2020版本已经不支持GUIText及GUITex这些操作了 因此需要修复成UGUI。 工程demo说明 打开工程后直接进入这个场景即可,如果只是想看粒子效果则需要把KinectController关掉,然后开启Beta O

qq_42685027的博客 5372

鸿蒙5.0版开发:ArkUI框架开发-气泡提示 (Popup)

Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。

m0_73088370的博客 808

TP-LINK电信定制摄像头刷机教程:解锁官方功能与固件升级

固件是嵌入式设备的操作系统,控制着硬件的基础功能。其工作原理是通过更新或替换存储在设备非易失性存储器中的程序代码,从而改变设备的行为和功能。这项技术的核心价值在于赋予用户对设备的完全控制权,能够解除厂商或运营商的软件限制,实现功能自定义、性能优化和安全更新。在智能家居、网络设备和物联网领域,固件升级与刷机是常见的工程实践,用于修复漏洞、增加新特性或适配不同平台。本文聚焦于利用TFTP恢复模式这一通用网络设备维护机制,针对TP-LINK电信定制版摄像头,提供一套完整的刷机方案,将设备刷入官方通用版固件,以解除

weixin_34205826的博客 504

鸿蒙5.0开发进阶:UI框架-ArkTS组件(Popup)

Popup是用于显示特定样式气泡。

Androidbye的博客 747

【通信原理 入坑之路】—— 详解IQ调制以及星座图原理

文章目录一. IQ调制与解调的原理与过程二.PSK(相移键控)和IQ调制的关系:2.1 用IQ调制实现QPSK调制 一. IQ调制与解调的原理与过程 IQ调制的定义是:“IQ调制就是数据分为两路,分别进行载波调制,两路载波相互正交。I是in-phase(同相), q是 quadrature(正交)” 我们通过下面的示意图介绍IQ调制的过程: 首先,信号分成两路:I路和Q路(为了方便理解我们把这两...

凝望,划过星空的博客 11万+

crowdcountingp2p代码复现

前面学习了一下论文:Improved Field-Based Soybean Seed Counting and Localization with Feature Level Considered该论文的模型原型由CrowdCounting-P2PNet改进而来这里先复现一下CrowdCounting-P2PNet模型,然后再学习P2PNet-Soy模型。

m0_73832962的博客 2330

鸿蒙next开发:ArkUI组件(Popup)

Popup组件通常用于在屏幕上弹出一个对话框或者浮动窗口。

Aym88的博客 696

如何有效使用Project(1)——编制进度计划、保存基准

1.前言: 软件产品的研发、升级、定制等,一般都是以项目的形式进行,此时项目进度计划以及资源使用情况就变成了项目经理关注的重点。如何让项目计划有效可控,及时暴露问题?如何查看资源的负荷情况,看资源分配是否合理。 当然,如果你的公司已经实施了专门的PM软件来监督管控,可以忽略本文。否则,你可以用微软的Project来做到这一工作。 我也算是一个专业的从事PM软件产品的人(虽然我们的客户都是制造...

weixin_34236869的博客 2115

【鸿蒙(HarmonyOS)】Router(路由)、CustomDialog(弹窗)、Popup(气泡提示)和setTimeout(定时服务)的使用(以登录模块为例)

Popup(气泡提示):可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。CustomDialog(弹窗):可用于广告、中奖、警告、软件更新等与用户交互响应操作。,主攻前端的小伙伴肯定不陌生,科班学习的小伙伴多少也有印象,这里我就简单讲一下。setTimeout(定时器):指定多久后(ms)完成方法(function)关于布局构建,可以参考同栏目中的文章,以下是大致的布局,后面再完善。Router(路由):在应用程序中实现不同页面之间的跳转和数据传递。第二步:跳转并传递数值。

守夜人 2051

WSL2 + Open3D点云可视化踩坑全记录:从GLFW报错到VcXsrv配置,一篇讲清所有‘坑’

本文详细解析了在WSL2环境中使用Open3D进行点云可视化时遇到的常见问题,特别是GLFW报错和VcXsrv配置问题。通过系统性的解决方案和高级配置技巧,帮助开发者彻底解决图形显示、驱动加载和库版本冲突等难题,实现高效的点云可视化。

weixin_30627341的博客 101

104基于深度学习识别是AI生成还是真实图片

的可视化界面,通过点击左侧可以加载要识别的检测对象图片,点击中间的识别按钮,会识别出结果,识别结果在右侧显示,当前识别的图片是真实的图片,非假图片。有兴趣的小伙伴也可以自行扩充数据集,或训练自己的数据集。文本,分别存放了图片路径和对应的标签。文本里面的数据,并将训练好的模型也保存在本地。即可加载训练好的模型,真假图片进行识别。本期给大家介绍的是基于深度学习识别是。代码整体是非常简便的,总共三个。个文件夹分别是真图和。

xcvxvfgdfgfh的博客 2262

Qt-for-鸿蒙PC-HarmonyOS-气泡组件开发实战

本文介绍了使用Qt Quick/QML在HarmonyOS平台上开发可定制气泡提示组件的实战案例。该组件支持自定义文本、方向、颜色和动画效果,核心功能由BubbleWidget.qml实现,包含智能尺寸计算、气泡矩形计算和三角形路径计算等关键算法。项目采用Qt 5.15+框架,使用Canvas 2D API进行绘制,提供实时预览配置界面,支持四个方向的三角形指示器,并实现了流畅的淡入淡出动画效果。组件结构清晰,包含主界面配置面板和核心绘制组件,是学习Qt + HarmonyOS UI开发的典型案例。

2301_77888392的博客 5571

Altera Quartus II FPGA固件烧录全攻略:从SOF到JIC的完整流程(附EPCQ128配置技巧)

本文详细介绍了使用Altera Quartus II工具链将FPGA固件从SOF文件转换为JIC文件并烧录到EPCQ128 Flash芯片的完整流程。内容涵盖环境配置、文件转换步骤、EPCQ128专用配置技巧以及常见问题解决方案,帮助工程师实现FPGA固件的flash固化,确保设计可靠运行。

weixin_30275415的博客 207

鸿蒙开发0基础【气泡提示(Popup)】ArkUI

Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。主要用于屏幕录制、信息弹出提醒等显示状态。 气泡分为两种类型,一种是系统提供的气泡[PopupOptions],一种是开发者可以自定义的气泡[CustomPopupOptions]。其中,PopupOptions通过配置primaryButton和secondaryButton来设置带按钮的气泡,CustomPopupOptions通过配置[builder]来设置自定义的气泡。

zhenggaoxiao232的博客 428

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【HarmonyOS Next】鸿蒙应用弹框和提示气泡详解(一)

应用开发中我们会很频繁的接触,弹框Dialog和提示气泡Toast的使用。移动开发的同学会比较熟悉。不过在鸿蒙的响应式布局中,使用鸿蒙早期提供的弹框Dialog和提示气泡Toast,会很不方便。因为是和UI绑定在一起,在纯逻辑类文件中使用不了。因为该历史问题,后续API迭代时,对鸿蒙的弹框Dialog和提示气泡Toast进行了升级。目前可以在纯逻辑类中使用,与UI进行了解耦。迭代优化过程从page界面UI上弹出 =》挂靠子窗口实现弹出=》UI框架层预留挂靠节点。

路漫漫亦无涯 1482

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 鸿蒙5.0开发进阶:UI开发常用组件-自定义渲染 (XComponent)
下一篇: 鸿蒙5.0开发进阶:UI框架-线性布局 (Row/Column)
懂你的大海
博客等级 码龄6年 9049粉丝 1381原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值