
【HarmonyOS Next】鸿蒙应用弹框和提示气泡详解(一) 原创
【HarmonyOS Next】鸿蒙应用弹框和提示气泡详解(一)
一、前言
应用开发中我们会很频繁的接触,弹框Dialog和提示气泡Toast的使用。
移动开发的同学会比较熟悉。不过在鸿蒙的响应式布局中,使用鸿蒙早期提供的弹框Dialog和提示气泡Toast,会很不方便。因为是和UI绑定在一起,在纯逻辑类文件中使用不了。
因为该历史问题,后续API迭代时,对鸿蒙的弹框Dialog和提示气泡Toast进行了升级。目前可以在纯逻辑类中使用,与UI进行了解耦。
迭代优化过程:
从page界面UI上弹出 =》挂靠子窗口实现弹出=》UI框架层预留挂靠节点
根据迭代过程,我们可以发现,目前和UI强绑定的实现方式API已标注不推荐。
二、鸿蒙中的弹框使用
综上所述,目前鸿蒙HarmonyOS对于弹框和提示气泡,以及延申的组件(浮层,Popup,Menu, bindSheet, bindContentCover)
实现方案都是挂靠到UI框架的预留节点上,进行添加渲染。
1.弹框的实现
目前弹框有两种方式:
(1)系统定制弹框,可以直接使用。
系统定制弹框根据业务复杂度的不同,也有两种方式封装。
分别是基础弹框(警告弹框,列表弹窗):
还有带业务性质的PickerDialog弹框:
日历选择器弹窗 (CalendarPickerDialog)
日期滑动选择器弹窗 (DatePickerDialog)
时间滑动选择器弹窗 (TimePickerDialog)
文本滑动选择器弹窗 (TextPickerDialog)
(2)自定义弹框。
需要创建节点对象,在节点对象中添加自定义弹框的布局:
之后获取PromptAction对象,调用openCustomDialog弹出自定义弹框:
当你需要修改自定义弹框的对齐方式,偏移量等,需要添加promptAction.BaseDialogOptions。
2.气泡的实现
Toast的使用很简单,目前只能支持自定义文本内容,气泡层级(默认在页面内,Top在页面上)
对齐方式和悬浮态。不能设置字体的大小和颜色。如果要自定义字体大小和颜色。需要使用自定义弹框或者Popup来实现。
三、源码示例
