
回复
相信大家生活中也经常会遇到上方情况,本章节我们来模拟提示一个电量不足的显示,使用自定义弹窗来实现
说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
通过CustomDialogController类显示自定义弹窗。
CustomDialogController(value:{builder: CustomDialog, cancel?: () => void, autoCancel?: boolean, alignment?: DialogAlignment, offset?: Offset, customStyle?: boolean})
参数
参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
---|---|---|---|---|
builder | CustomDialog | 是 | - | 自定义弹窗内容构造器。 |
cancel | () => void | 否 | - | 点击遮障层退出时的回调。 |
autoCancel | boolean | 否 | true | 是否允许点击遮障层退出。 |
alignment | DialogAlignment | 否 | DialogAlignment.Default | 弹窗在竖直方向上的对齐方式。 |
offset | { dx: Length | Resource, dy: Length | Resource } | 否 | - | 弹窗相对alignment所在位置的偏移量。 |
customStyle | boolean | 否 | false | 弹窗容器样式是否自定义。 |
gridCount8+ | number | 否 | - | 弹窗宽度占栅格宽度的个数。 |
DialogAlignment枚举说明
名称 | 描述 |
---|---|
Top | 垂直顶部对齐。 |
Center | 垂直居中对齐。 |
Bottom | 垂直底部对齐。 |
Default | 默认对齐。 |
TopStart8+ | 左上对齐。 |
TopEnd8+ | 右上对齐。 |
CenterStart8+ | 左中对齐。 |
CenterEnd8+ | 右中对齐。 |
BottomStart8+ | 左下对齐。 |
BottomEnd8+ | 右下对齐。 |
代码介绍:
open(): void
显示自定义弹窗内容,若已显示,则不生效。
close(): void
关闭显示的自定义弹窗,若已关闭,则不生效。
本章节的UI设计特别简单,仅需要实现一个弹窗即可
开介绍,我们需要在@Entry外进行定义,定义类型是@CustomDialog,其基本结构如下(官网)
通过上面的程序可以实现下面的效果
我们需要对内容和格式进行修改
实现效果如下:
弹窗调用的函数为this.controller.open(),一般是通过给定事件,像点击按钮或者之类,我们这里选择使用直接弹窗的形式(打开APP就弹窗)
使用到函数为onPageShow(),其位置在该位置:
已实现效果,如上图所示。