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

鸿蒙:PickerDialog 日期选择弹窗实现流程

1、前言

本文将以「日期选择弹窗」为例,参考官方文档学习与实践,并动手打造一个练手页面。

2、功能目标​

  1. 页面显示标题、当前选中日期文本​
  2. 点击按钮弹出日期选择弹窗​
  3. 选择日期后,页面文本实时更新,控制台打印选中日期​
  4. 自定义弹窗确认 / 取消按钮的样式(颜色、圆角、背景等)

核心代码

 // 8. 显示日期选择器弹窗CalendarPickerDialog.show({selected: this.selectedDate, // 9. 弹窗初始选中的日期,使用已保存的选中日期// 10. 确认按钮样式配置acceptButtonStyle: {fontColor: '#2787d9', // 文字颜色fontSize: '16fp', // 文字大小backgroundColor: '#f7f7f7', // 背景色borderRadius: 10 // 圆角半径},// 11. 取消按钮样式配置cancelButtonStyle: {fontColor: Color.Red, // 文字颜色(使用系统提供的红色)fontSize: '16fp', // 文字大小backgroundColor: '#f7f7f7', // 背景色borderRadius: 10, // 圆角半径,},// 12. 确认选择回调:用户点击确认按钮时触发onAccept: (date: Date) => {// 更新选中日期为用户新选择的日期,确保下次弹窗显示最新选中值this.selectedDate = date;// 打印选中的日期到控制台console.log('选择的日期是', this.formatDate(this.selectedDate))}})

3、参考文档

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-fixes-style-dialog#%E9%80%89%E6%8B%A9%E5%99%A8%E5%BC%B9%E7%AA%97-pickerdialoghttps://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-fixes-style-dialog#%E9%80%89%E6%8B%A9%E5%99%A8%E5%BC%B9%E7%AA%97-pickerdialog

4、运行效果图

5、Index.ets完整代码

// 选择器弹窗 (PickerDialog)练习代码
// 官方文档链接:
// https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-fixes-style-dialog#%E9%80%89%E6%8B%A9%E5%99%A8%E5%BC%B9%E7%AA%97-pickerdialog// 1. 组件装饰器:@Entry表示该组件为应用入口组件,@Component表示这是一个ArkUI组件
@Entry
@ComponentV2
struct Index {// 2. 成员变量:用于存储用户选中的日期,初始值设为2025-09-27@Local selectedDate: Date = new Date('2025-09-27');// 格式化日期为 'yyyy-MM-dd' 格式的函数formatDate(date: Date): string {const year = date.getFullYear(); // 获取年份(4位数字)const month = date.getMonth() + 1; // 获取月份(0-11),加1转为实际月份(1-12)const day = date.getDate(); // 获取日期(1-31)// 月份和日期不足两位时补0,再拼接成字符串return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;}// 3. 构建UI界面的方法,所有UI元素都在该方法中定义build() {// 4.  Column容器:垂直方向排列子组件,宽度占满屏幕Column() {Row().height(30)Text("选择器弹窗 (PickerDialog)\n练习示例").textAlign(TextAlign.Center).fontWeight(FontWeight.Bold).fontSize(24).padding({ bottom: 200 })Column() {Text("选择的日期是:" + this.formatDate(this.selectedDate)).fontSize(20).fontWeight(FontWeight.Bold)// 5. 按钮组件:用于触发日期选择器弹窗的显示Button("开启日期选择器弹窗").margin(20) // 6. 按钮外边距:上下左右各20vp.onClick(() => { // 7. 点击事件:按钮被点击时执行的逻辑// 8. 显示日期选择器弹窗CalendarPickerDialog.show({selected: this.selectedDate, // 9. 弹窗初始选中的日期,使用已保存的选中日期// 10. 确认按钮样式配置acceptButtonStyle: {fontColor: '#2787d9', // 文字颜色fontSize: '16fp', // 文字大小backgroundColor: '#f7f7f7', // 背景色borderRadius: 10 // 圆角半径},// 11. 取消按钮样式配置cancelButtonStyle: {fontColor: Color.Red, // 文字颜色(使用系统提供的红色)fontSize: '16fp', // 文字大小backgroundColor: '#f7f7f7', // 背景色borderRadius: 10, // 圆角半径,},// 12. 确认选择回调:用户点击确认按钮时触发onAccept: (date: Date) => {// 更新选中日期为用户新选择的日期,确保下次弹窗显示最新选中值this.selectedDate = date;// 打印选中的日期到控制台console.log('选择的日期是', this.formatDate(this.selectedDate))}})})}}.width('100%') // 13. 设置Column容器宽度为100%(占满屏幕宽度).height('100%')}
}

http://www.dtcms.com/a/414925.html

相关文章:

  • Vue 简介
  • 电商网站项目经验介绍中国企业500强出炉
  • 网站建设 赣icp 南昌成都网站设计哪家比较好
  • Coze源码分析-资源库-删除数据库-后端源码-安全与错误处理
  • .net 程序部署 Docker从零开始实战攻略
  • ps网站轮播图怎么做的宁波外贸公司排名前十
  • wordpress个人博客前台模板泸州网站优化推广
  • OpenCV1
  • 做阿里网站卖东西赚钱智慧团建团员注册入口
  • 拿子游戏
  • 3D 生成模型 开源-混元 3D-Part
  • 了解网站开发的一般过程别人做的网站自己想更新
  • 给周杰伦做网站简易小程序制作
  • 重庆网站设计中心河北手机响应式网站建设设计
  • LBM+FCNN耦合模型:精准高效预测海底裂缝溶解的新工具
  • To B AI 创业黄金打法:从赋能到重塑业务流程
  • 6. 绝对值
  • CTFHub RCE通关笔记5:文件包含 远程包含
  • Redis-实战(短信登录)
  • 网站怎样制作流程网页打不开但是有网什么原因禁用
  • 彩票做的最好是个网站好泸州工投建设集团有限公司网站
  • Zabbix监控IRIS数据库
  • 网站建设广告宣传素材wordpress知名站点
  • 跨境网站入口水安建设集团网站
  • 多元组优先队列
  • 同一个域名两个网站wordpress内页锚文本
  • 建设银行官方网站首页企业淘宝客网站免费模板下载
  • 《告别 “会用不会讲”:C++ string 底层原理拆解 + 手撕实现,面试 / 开发都适用》
  • 手机怎样设计网站建设无锡连夜发布最新通告
  • 18互联网站做网站程序黑马大数据培训