news 2026/4/18 2:45:56

【HarmonyOS NEXT】ArkUI实现「单格单字符+下划线」手机号/验证码输入框

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【HarmonyOS NEXT】ArkUI实现「单格单字符+下划线」手机号/验证码输入框

一、背景

在开发鸿蒙登录/验证码页面时,需要实现「每个数字单独占一格、每格下方带下划线、输入框隐藏」的手机号或验证码输入效果。

最初我是打算用输入框TextInput+下划线Divider来实现这个效果的,但是无法实现「单格单字符+独立下划线」的视觉效果,最终采用以下的实现思路

需要实现的效果图:

二、实现思路

以11位手机号码为例:

1、UI视觉:通过ForEach循环渲染 11 个由Column包裹的 “Text+Divider” 组合,实现 单格数字+下划线的效果。

2、交互实现:隐藏的TextInput处理实际输入和数据绑定

3、点击控制:当点击输入数字时,通过focusControl将焦点传递给隐藏的TextInput,确保输入的连贯性

三、具体代码如下

以下代码可直接运行查看效果

@Entry @ComponentV2 struct Index { @Local phoneNumber: string = "" private inputKey: string = "mobileFocus" controller: TextInputController = new TextInputController() build() { Column() { Stack({ alignContent: Alignment.Center }) { // 1. 交互层:隐藏的TextInput(处理输入逻辑) TextInput({ text: this.phoneNumber, controller: this.controller }) .fontSize(16) .opacity(0) .type(InputType.Number) .height('auto') .key(this.inputKey) .textAlign(TextAlign.Center) .maxLength(11) .onChange((value) => { this.phoneNumber = value }) //2. UI层:TextAndLine组件(渲染11个格子) TextAndLine({ count: 11, chat: this.phoneNumber, textWidth: 20, dividerWidth: 24 }) } .margin({ top: 100 }) .onClick(() => { focusControl.requestFocus(this.inputKey) }) } .width('100%') .height('100%') .backgroundColor('#151617') } } @ComponentV2 export struct TextAndLine { @Param chat: string = "" @Param count: number = 11 @Param textWidth: number = 20 @Param dividerWidth: number = 24 private dataArray: string[] = new Array(this.count).fill(null) build() { Row({ space: 8 }) { ForEach(this.dataArray, (value: string, index: number) => { Column() { Text(this.getValue(index)) .width(this.textWidth) .height(44) .lineHeight(44) .fontColor('#CCFFFFFF') .fontSize(32) .textAlign(TextAlign.Center) Divider() .strokeWidth(1) .color('#99FFFFFF') .width(this.dividerWidth) }.justifyContent(FlexAlign.Center) }) } .width('auto') .height(60) .backgroundColor('#FF151617') } getValue(index: number): string { if (this.chat.length > index) { return this.chat[index].toString() } else { return " " } } }

四、实现效果

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

从0到1:用Meta-Llama-3-8B-Instruct构建你的第一个AI应用

从0到1:用Meta-Llama-3-8B-Instruct构建你的第一个AI应用 1. 引言:为什么选择Meta-Llama-3-8B-Instruct作为入门首选? 在当前大模型快速发展的背景下,越来越多开发者希望亲手部署并体验一个真正可用的AI对话系统。然而&#xff…

作者头像 李华
网站建设 2026/4/17 16:37:02

Qwen3-1.7B性能评测:不同GPU环境下推理速度对比分析

Qwen3-1.7B性能评测:不同GPU环境下推理速度对比分析 1. 技术背景与评测目标 随着大语言模型在生成能力、理解深度和应用场景上的不断拓展,轻量级高效模型逐渐成为边缘部署、实时交互和低成本服务的核心选择。Qwen3(千问3)是阿里巴…

作者头像 李华
网站建设 2026/4/15 14:54:42

Qwen3-Embedding-4B性能评测:不同硬件平台的推理速度

Qwen3-Embedding-4B性能评测:不同硬件平台的推理速度 1. 引言 随着大模型在信息检索、语义理解与多模态应用中的广泛落地,高质量文本嵌入(Text Embedding)模型的重要性日益凸显。Qwen3-Embedding-4B作为通义千问系列最新推出的中…

作者头像 李华
网站建设 2026/4/16 4:43:45

elasticsearch可视化工具入门必看:零基础快速上手指南

零基础也能玩转 Elasticsearch:三款可视化工具实战指南你是不是也遇到过这种情况?刚接手一个日志系统,被告知“所有数据都在 ES 里”,然后就被丢进 Kibana 界面——满屏的图表、术语和按钮,却不知道从哪下手。想查个错…

作者头像 李华
网站建设 2026/4/15 3:21:54

如何高效部署PaddleOCR-VL?用这个镜像省心又高效

如何高效部署PaddleOCR-VL?用这个镜像省心又高效 1. 引言:为什么需要高效的PaddleOCR-VL部署方案? 在当前AI文档理解与视觉语言建模快速发展的背景下,PaddleOCR-VL作为百度开源的SOTA(State-of-the-Art)文…

作者头像 李华
网站建设 2026/4/16 11:22:56

无需GPU高手指导,普通人也能玩转Qwen3-0.6B

无需GPU高手指导,普通人也能玩转Qwen3-0.6B 在大模型时代,很多人认为运行和调用语言模型必须依赖高性能GPU、复杂环境配置以及深厚的技术背景。然而,随着云平台镜像技术和轻量级模型的发展,即使是普通用户也可以轻松上手最新一代…

作者头像 李华