当前位置: 首页 > news >正文

鸿蒙应用开发从入门到实战(二十一):ArkUI自定义弹窗组件

大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战等原创内容、欢迎关注!

上一篇文章讲述了ArkUI提供的各种内置弹窗组件,当项目中遇到这些组件仍然不满足需求时,可以使用自定义弹窗组件。本文研究自定义弹窗组件的使用。

一、概述

当现有组件不满足要求时,可考虑自定义弹窗,自定义弹窗允许开发者自定义弹窗内容和样式。例如

1自定义弹窗

示例代码

pages/component/dialog/新建CustomDialogPage.ets文件

@Entry
@Component
struct CustomDialogPage {@State answer: string = '?'controller: CustomDialogController = new CustomDialogController({builder: TextInputDialog({confirm: (value) => {this.answer = value;}}),alignment: DialogAlignment.Bottom,offset: { dx: 0, dy: -30 }})build() {Column({ space: 50 }) {Row() {Text('1+1=').fontWeight(FontWeight.Bold).fontSize(30)Text(this.answer).fontWeight(FontWeight.Bold).fontSize(30)}Button('作答').onClick(() => {this.controller.open();})}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
}@CustomDialog
struct TextInputDialog {controller: CustomDialogController = new CustomDialogController({ builder: TextInputDialog() })confirm: (value: string) => void;value: string = '';build() {Column({ space: 20 }) {Text('请输入你的答案')TextInput({ placeholder: '请输入数字' }).type(InputType.Number).onChange((value) => {this.value = value;})Row({ space: 50 }) {Button('取消').onClick(() => {this.controller.close();})Button('确认').onClick(() => {this.confirm(this.value);this.controller.close();})}}.padding(20)}
}

二、使用说明

显示自定义弹窗需要使用CustomDialogController

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/arkts-common-components-custom-dialog-0000001450754206-V2

《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战等原创内容,防止迷路,欢迎关注!

http://www.gsyq.cn/news/20659.html

相关文章:

  • 2025 年北京开锁机构推荐:北京锁王开锁有限公司,您身边的锁具安全专家
  • svn常用命令命令
  • 如何本地直升Windows 11 25H2:两种方法超级简单
  • 2025 年最新推荐!覆盖上海广州杭州等多地的居民同城长途异地跨城日式国际搬家公司优质服务排行榜
  • 共模电压测量:原理、方法与应用探析
  • LGP9869 [NOIP 2023] 三值逻辑 学习笔记
  • 2025 年隔音板厂家最新推荐排行榜:阻尼 / 聚酯纤维 / 室外等多品类适配,聚焦口碑厂商与一站式服务
  • 310、清平调三首其三
  • 2025 年最新推荐防静电地板源头厂家权威排行榜,涵盖机房陶瓷全钢等多类型产品优质品牌汇总车间/生产防静电地板/防静电活动地板/抗静电地板公司推荐
  • 实用指南:Transformer模型:深度解析自然语言处理的革命性架构
  • 联合训练
  • vxe-table 利用配置 ajax 方式自动请求资料,适用于简单场景的列表
  • LibreOffice Impress播放不出视频的解决方法
  • Exchange 异常关机后无法登录owa/ecp 以及ems无法连接远程服务器
  • RSA密钥生成基准测试深度解析
  • 数据结构字符串和图
  • 结婚证识别技术:融合计算机视觉、深度学习与自然语言处理的综合性AI能力的体现
  • 数据结构序列
  • 上下文学习(In-context Learning, ICL)
  • JVM引入
  • 从众多知识汲取一星半点也能受益匪浅【day11(2025.10.13)】
  • 光栅化
  • 编写DX12遇到的坑
  • 用Vmware ESXI6.7离线包封装网卡驱动
  • CF2159B
  • 环境变量 Path 配置实战指南:从“能用”到“专业”--两种配置环境变量的方法
  • 玄机蓝队靶场_应急响应_198:实战Live勒索病毒溯源排查
  • [KaibaMath]1009 关于||a|-|b||≤|a+b|的证明
  • 十月总结
  • SpringBoot-day2(基于SpringBoot实现SSMP整合) - a