【HarmonyOS】逻辑类中调用通用弹窗的处理

2024-06-11 11:12

本文主要是介绍【HarmonyOS】逻辑类中调用通用弹窗的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【HarmonyOS】逻辑类中调用通用弹窗的处理

一、背景说明:

在应用开发中,为了保证APP应用内的弹框的一致性,一般而言会封装风格一致的通用弹框组件。用于提示和便捷的逻辑触发操作。比如通知,踢出登录,奖励提醒等等。

并且鸿蒙原生的customDialog不能在纯逻辑处理类中进行触发和调用,与UI类是强绑定的关系。所以对弹框进行组件子窗口封装是很有必要。

注意:目前官方对外的API还没有开放可在纯逻辑中使用的弹框。

考虑到弹框的通用性,在确定和取消按钮样式的基础上,添加对UI插槽的支持,可以将自定义的View内容填充到弹框中,并且可修改弹框的宽高。

考虑到弹框信息,用户需要有操作情景。将弹框处理队列维持信息的缓存和记录,每次操作完当前弹框后,才会显示下个弹框。因为有队列,所以对消息权限紧急的信息,添加插队处理。

二、如何设计:

  1. 首先为了实现可在纯逻辑开发类中触发弹框,我们需要将通用弹框的UI部分进行剥离,呈现在业务窗口之上,创建子窗口建立提醒交互层。

  2. 因为UI进行了剥离,所以我们需要有调用和信息传递的桥接层,此时就需要封装一个单例mgr进行管理通用弹框的队列,状态,唤起接口等。

  3. 配置弹框要展示的信息,将配置信息对象添加到DialogManager中,加入队列去展示。

// 插槽使用DialogUIConfigInfo.mBuilder 将修饰的函数赋值传入即可,注意调整弹框宽高 customContain() {Text("你好CSDN")
}  mDialogUIConfigInfo.mBuilder = this.customContain.bind(this)

三、剥离通用弹框UI的原理:

CustomDialog是弹框UI类,在业务层窗口之上,创建子窗口。将UI布局添加,默认隐藏。再通过封装的单例DialogMgr通过对配置对象的调度,将数据传输给CustomDialog,弹框界面唯一,每次弹框变化只是刷新数据。

通过DialogMgr进行队列的维护,并且使用DiaologType对普通和特殊两种类型的弹框,进行区分。
DialogUIConfigInfo是对弹框的信息汇总配置对象,通过设置所需要的信息,将对象传给DialogMgr进行展示使用。

这篇关于【HarmonyOS】逻辑类中调用通用弹窗的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051006

相关文章

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤