news 2026/6/5 4:42:01

HarmonyOS 6 SelectDialog 纯列表单选弹出框使用文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 6 SelectDialog 纯列表单选弹出框使用文档

文章目录

    • 完整源码
    • 整体功能说明
    • 代码结构解析
      • 1. 模块导入
      • 2. 全局状态变量
      • 3. 弹窗控制器初始化
      • 4. 页面布局结构
    • SelectDialog 核心参数
      • radioContent 单选项结构
    • 总结

完整源码

import { SelectDialog } from '@kit.ArkUI'; @Entry @Component struct Index { // 设置默认选中radio的index radioIndex: number = 0; dialogControllerList: CustomDialogController = new CustomDialogController({ builder: SelectDialog({ title: '文本标题', selectedIndex: this.radioIndex, confirm: { value: '取消', action: () => {}, }, radioContent: [ { title: '文本文本文本文本文本', action: () => { this.radioIndex = 0 } }, { title: '文本文本文本文本', action: () => { this.radioIndex = 1 } }, { title: '文本文本文本文本', action: () => { this.radioIndex = 2 } }, ] }), }) build() { Row() { Stack() { Column() { Button("纯列表弹出框") .width(96) .height(40) .onClick(() => { this.dialogControllerList.open() }) }.margin({ bottom: 300 }) } .align(Alignment.Bottom) .width('100%') .height('100%') } .backgroundImageSize({ width: '100%', height: '100%' }) .height('100%') } }

运行效果如图:

整体功能说明

  1. 页面提供触发按钮「纯列表弹出框」,点击可唤起SelectDialog 单选列表弹窗
  2. 弹窗自带顶部标题、单选列表项、底部取消按钮;
  3. 支持记忆默认选中索引,再次打开弹窗保留上次单选状态;
  4. 每一个列表选项独立绑定点击回调,切换选中下标;
  5. 采用CustomDialogController统一管理弹窗实例,通过open()方法控制弹窗唤起;
  6. 页面采用Stack+Column底层布局,按钮固定底部展示,适配全屏页面结构。

代码结构解析

1. 模块导入

从ArkUI高级弹窗套件中引入列表单选弹窗组件:
import { SelectDialog } from '@kit.ArkUI';

2. 全局状态变量

  • radioIndex:记录单选列表默认选中下标,初始值为0,用于弹窗初始化回显选中状态。

3. 弹窗控制器初始化

通过CustomDialogController创建弹窗控制器,builder参数绑定SelectDialog纯列表弹窗结构,统一配置弹窗标题、选中项、按钮、列表数据源。

4. 页面布局结构

  • 外层 Row 铺满全屏;
  • Stack 容器内部对齐底部,承载触发按钮;
  • 点击按钮调用控制器open()方法,拉起纯列表弹出框。

SelectDialog 核心参数

参数名称类型作用说明
titlestring设置纯列表弹窗顶部标题文本
selectedIndexnumber设置弹窗单选框默认选中下标,绑定外部变量可实现状态记忆
confirmObject底部操作按钮配置,包含按钮文案value和点击回调action
radioContentArray单选列表数据源数组,每一项为独立单选选项

radioContent 单选项结构

字段说明
title列表选项展示文本
action当前选项被点击时触发的回调,可修改选中下标、执行业务逻辑

总结

  1. SelectDialog 属于 ArkUI 高级弹窗组件,必须依赖 @kit.ArkUI 模块,低版本SDK无法使用;
  2. 必须配合CustomDialogController控制器使用,通过open()方法唤起弹窗;
  3. selectedIndex绑定外部变量,可实现弹窗关闭后再次打开保留选中状态
  4. radioContent为数组结构,支持自由扩展多条列表选项,每条选项独立配置点击事件;
  5. 底部confirm按钮可自定义文案与业务回调,示例为取消按钮,可修改为确定、关闭等业务文案;
  6. 弹窗样式、单选UI样式由系统原生封装,无需自定义布局,开箱即用。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 4:39:19

CPU上高效运行Vicuna大模型:llama.cpp量化推理实战指南

1. 项目概述:在普通CPU上跑通Vicuna大模型的实操真相“High-Speed Inference with llama.cpp and Vicuna on CPU”——这个标题乍看像一句技术口号,但背后藏着一个非常现实、也非常迫切的工程命题:不依赖GPU,仅靠一台带16GB内存的…

作者头像 李华
网站建设 2026/6/5 4:36:04

SpringBoot+Vue高校机动车认证信息管理系统源码+论文

代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 分享万套开题报告任务书答辩PPT模板 作者完整代码目录供你选择: 《SpringBoot网站项目》1800套 《SSM网站项目》1500套 《小程序项目》1600套 《APP项目》1500套 《Python网站项目》…

作者头像 李华
网站建设 2026/6/5 4:36:04

小Why的密码锁【牛客tracker 每日一题】

小Why的密码锁 时间限制:3秒 空间限制:256M 网页链接 牛客tracker 牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每…

作者头像 李华
网站建设 2026/6/5 4:29:56

OpenCV工业数据采集:参数锁定、触发同步与质量闭环

1. 项目概述:用OpenCV做数据采集,不是写个cv2.VideoCapture就完事了“Data Collection Using OpenCV”这个标题看起来平平无奇,甚至有点像某门课设的作业名——但如果你真把它当成“调个摄像头拍几张图”的小活儿来干,等你把模型训…

作者头像 李华
网站建设 2026/6/5 4:28:06

Sqribble模板驱动型PDF生成原理与实战指南

1. 项目概述:这不是“一键生成”,而是一套被精心封装的文档流水线你有没有过这种经历:手头有一篇写得不错的博客文章,老板突然说“赶紧做成个PDF小册子,下午发给客户”;或者团队刚整理完一份产品使用指南&a…

作者头像 李华