HarmonyOS应用《玄象》开发实战:BaziInputPage 八字录入:TextInput / DatePicker / TimePicker 表单组件

发布时间:2026/10/6 12:49:46

HarmonyOS应用《玄象》开发实战:BaziInputPage 八字录入:TextInput / DatePicker / TimePicker 表单组件 阅读时长约 19 分钟 | 难度★★★★☆ | 篇章第 6 篇 · 命理八字模块对应源码entry/src/main/ets/pages/mingli/BaziInputPage.ets前言八字排盘的第一步是录入出生信息。玄象项目通过BaziInputPage提供完整的表单录入界面涵盖年/月/日/时/分的数值输入、公历/农历切换、性别选择、出生地填写等字段。本篇将深入剖析玄象项目八字录入页的实现从TextInput文本输入、Toggle开关切换、NumberInput数字输入 Builder、State表单状态管理到表单验证与跳转。掌握这套表单组件实现方法论您就能为任何 HarmonyOS 应用构建标准化的表单录入页面。提示玄象项目八字录入页默认值为 1990 年 1 月 1 日 12:00包含公历/农历切换开关和实时时辰显示。一、表单结构1.1 状态变量StatebirthYear:number1990;StatebirthMonth:number1;StatebirthDay:number1;StatebirthHour:number12;StatebirthMinute:number0;Stategender:string男;StatebirthPlace:string北京;StateisLunar:booleanfalse;二、NumberInput 数字输入2.1 Builder 实现BuilderNumberInput(label:string,value:number,min:number,max:number,onChange:(v:number)void){Column({space:4}){Text(label).fontSize(12).fontColor(Colors.TEXT_DIM)Row({space:4}){Text(−).fontSize(20).fontColor(Colors.PRIMARY_GOLD).onClick((){if(valuemin)onChange(value-1);})TextInput({text:${value}}).width(70).textAlign(TextAlign.Center).backgroundColor(Colors.BG_CARD).fontColor(Colors.TEXT_PRIMARY).onChange((v:string){constnumparseInt(v);if(!isNaN(num)numminnummax){onChange(num);}})Text().fontSize(20).fontColor(Colors.PRIMARY_GOLD).onClick((){if(valuemax)onChange(value1);})}}}三、公历/农历切换3.1 Toggle 开关Row(){Toggle({type:ToggleType.Switch,isOn:this.isLunar}).selectedColor(Colors.PRIMARY_GOLD).onChange((isOn:boolean){this.isLunarisOn;})Text(this.isLunar?农历:公历).fontSize(12)}四、时辰显示4.1 实时时辰Text(时辰${this.getShiChen()}).fontSize(13).fontColor(Colors.TEXT_SECONDARY)privategetShiChen():string{returnHeavenlyStems.getShiChen(this.birthHour);}五、表单提交5.1 跳转分析页Button(开始排盘).fontSize(16).fontColor(#FFFFFF).width(100%).height(48).backgroundColor(Colors.PRIMARY_GOLD).borderRadius(24).onClick((){router.pushUrl({url:pages/mingli/MingliAnalysisPage,params:{birthYear:this.birthYear,birthMonth:this.birthMonth,birthDay:this.birthDay,birthHour:this.birthHour,birthMinute:this.birthMinute,gender:this.gender,birthPlace:this.birthPlace,isLunar:this.isLunar}});})六、八字录入页设计总结6.1 页面结构区域组件内容日期输入Column年/月/日 公历/农历切换时间输入Column时/分 实时时辰显示性别选择Row男/女单选出生地TextInput地点输入提交按钮Button“开始排盘”总结本篇以玄象项目八字录入页为蓝本深入剖析了 ArkUI 表单组件实现从TextInput文本输入、Toggle开关切换、NumberInput数字输入 Builder、State表单状态管理到表单验证与跳转。掌握这套表单组件实现方法论您就能为任何 HarmonyOS 应用构建标准化的表单录入页面。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源HarmonyOS 官方文档TextInput 组件开源鸿蒙跨平台社区https://openharmonycrossplatform.csdn.net
延伸阅读

更多相关文章

2026/10/7 2:50:47

大模型技术解析:从Transformer到Prompt工程实践

1. 大模型技术全景解析:从基础认知到实践应用大模型技术正在重塑我们与数字世界的交互方式。作为一名长期跟踪AI技术发展的从业者,我见证了这项技术从实验室走向大众的完整历程。本文将用最直白的语言,带您系统掌握大模型的核心原理、技术架构…

2026/10/2 18:49:42

Java开发者必备:使用Bouncy Castle生成与验证自签名证书实战指南

1. 项目概述:为什么Java开发者绕不开Bouncy Castle?如果你是一个Java开发者,尤其是在处理加密、数字证书、SSL/TLS这些安全相关的领域,那么“Bouncy Castle”这个名字你大概率不会陌生。它就像一个默默无闻但又无处不在的“瑞士军…

2026/10/7 0:57:07

WindowsCodecsExt.dll丢失的官方修复与安全解决方案

1. 问题背景与核心影响WindowsCodecsExt.dll是Windows系统中负责图像编解码功能的重要动态链接库文件。当这个文件丢失或损坏时,系统会弹出"找不到WindowsCodecsExt.dll"的错误提示,导致以下典型问题:图片查看器无法正常显示常见格…

2026/10/7 2:50:09

Java后端开发从入门到进阶整体专栏目录汇总

Java后端开发从入门到进阶 整体专栏目录汇总 专栏介绍:适合 Java 初学者及希望系统查漏补缺的开发者。专栏不仅讲“怎么用”,还会深入源码与底层原理,结合真实开发场景和代码案例,帮助你建立完整的 Java 技术知识体系。 本文是「…

2026/10/7 2:50:09

2026微信小店和独立商城小程序,三年总成本差多少?

微信小店和独立商城小程序,本质上是指在微信生态里卖货的两条不同路线:前者是微信官方提供的开店工具,后者是商家自己用第三方SaaS搭出来、再挂到微信里的商城。两条路都能卖货,但收费逻辑完全不同——一个不收年费、按笔抽成&…

2026/10/7 2:50:09

Excel多行合并成一行并复制数据的四种高效方案

这几年的数据表格,大体逃不开两类活儿:一类是把一条数据拆成多行,另一类是把多行数据并成一行。前者容易,分列、转置、透视表拖两下就完事;后者才磨人,尤其像“多行合并成一行,同时把数据完整复…

2026/10/7 2:50:09

Index-TTS-1.5多模态语音合成实战:架构、性能与商业化落地

最近在交付一个带货视频批量配音的项目,核心引擎就是Index-TTS-1.5。说实话,刚接触这套多模态语音合成方案时,我一度以为它只是又一款“音色克隆”工具,但真正跑完一轮从模型部署、推理调优到业务集成的全流程之后,我的…

2026/10/7 2:45:09

海光1000正式发布:国产x86嵌入式CPU选型与开发实操指南

1. 海光1000这颗芯片到底什么来头第一次看到“海光1000正式发布,国产CPU进军嵌入式”这条消息的时候,我正在调试一块工控板子,手边摆着三四款不同架构的核心板。说实话,国产CPU发新品不算新鲜事,但“进军嵌入式”这几个…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑