HarmonyOS NEXT - 表单录入组件封装(TextInput)

demo 地址: https://github.com/iotjin/JhHarmonyDemo
组件对应代码实现地址
代码不定时更新,请前往github查看最新代码

HarmonyOS NEXT - 表单录入组件封装(TextInput)

  • JhFormInputCell
  • JhFormSelectCell
  • JhLoginTextField

鸿蒙next中有两种类型的录入框TextInput(单行录入) 和TextArea(多行录入)

对TextInput 简单封装了下面几种类型的录入样式

  • JhTextInput
  • JhFormInputCell
  • JhFormSelectCell
  • JhLoginTextField

JhFormInputCell

在这里插入图片描述

用法:

import { BaseNavigation, JhButton, JhFormInputCell } from 'JhCommon'@Entry
@Preview
@Component
struct FormInputCellTestPage {@State name: string = ''@State pwd: string = ''build() {Column() {BaseNavigation({ title: 'JhFormInputCell' }) {Scroll() {Column() {this._body()}}}}}@Builder_body() {JhFormInputCell({placeholder: '默认样式,不设置左标题',inputCallBack: (value) => {console.log(value as string)},})Blank().height(8)JhFormInputCell({text: 'text赋初值',labelText: '顶部文字',placeholder: '请输入',// rightWidget: () => {//   this.rightBuilder()// }})Blank().height(8)JhFormInputCell({labelText: '顶部文字',placeholder: '请输入',// rightWidget: () => {//   this.rightBuilder()// }})JhFormInputCell({title: '左标题',})JhFormInputCell({title: '左标题',text: 'text赋初值,不可编辑',}).enabled(false)JhFormInputCell({title: '左标题',placeholder: '标题加红星',showRedStar: true,})JhFormInputCell({title: '左标题',placeholder: '红色标题',titleStyle: { fontColor: Color.Red, fontSize: 15 }})JhFormInputCell({title: '左标题',text: '红色文字',textStyle: { fontColor: Color.Red, fontSize: 15 }})JhFormInputCell({title: '左标题',placeholder: '红色提示文字',hintTextStyle: { fontColor: Color.Red, fontSize: 15 }})JhFormInputCell({title: '左标题',placeholder: 'text靠右',textAlign: TextAlign.End})JhFormInputCell({title: '左标题',placeholder: '限制长度10,a-zA-Z0-9',maxLength: 10,inputFilter: '[a-zA-Z0-9]'})JhFormInputCell({title: '左标题',placeholder: '限制长度5,数字输入类型',maxLength: 5,inputType: InputType.Number})JhFormInputCell({title: '左标题',placeholder: '左侧自定义',leftWidget: () => {this.rightBuilder()}})JhFormInputCell({title: '左标题',placeholder: '右侧自定义',rightWidget: () => {this.rightBuilder()}})JhFormInputCell({title: '左标题',placeholder: '下划线高亮和动画',borderAnimation: true,borderHighlight: true})JhFormInputCell({title: '左标题',placeholder: '隐藏下划线',hiddenLine: true,})Blank().height(30)JhButton({text: '提 交',onPressed: (): void => this.clickLogin()}).margin(15)}@BuilderleftBuilder() {Text('+86')// Row() {// }// .width('100%')// .height('100%')// .backgroundColor(Color.Yellow)}@BuilderrightBuilder() {Row() {}.width('100').height('100%').backgroundColor(Color.Orange)}clickLogin() {console.log('name:', JSON.stringify(this.name))console.log('pwd:', JSON.stringify(this.pwd))}
}

JhFormSelectCell

在这里插入图片描述

用法

import { BaseNavigation, JhButton, JhFormSelectCell } from 'JhCommon'@Entry
@Preview
@Component
struct FormSelectCellTestPage {@State name: string = ''@State pwd: string = ''@State errorText: string = ''build() {Column() {BaseNavigation({ title: 'JhFormSelectCell' }) {Scroll() {Column() {this._body()}}}}}@Builder_body() {JhFormSelectCell({selectCallBack: () => {console.log('点击cell')},})Blank().height(8)JhFormSelectCell({text: 'text赋初值',labelText: '顶部文字',placeholder: '请选择'})JhFormSelectCell({title: '左标题',})JhFormSelectCell({title: '左标题',text: 'text赋初值',})JhFormSelectCell({showRedStar: true,title: '左标题',placeholder: '标题加红星',})JhFormSelectCell({title: '左标题',placeholder: '红色标题',titleStyle: { fontColor: Color.Red, fontSize: 15 }})JhFormSelectCell({title: '左标题',text: '红色文字',textStyle: { fontColor: Color.Red, fontSize: 15 }})JhFormSelectCell({title: '左标题',text: 'text靠右',textAlign: TextAlign.End})JhFormSelectCell({title: '左标题',placeholder: '左侧自定义',leftWidget: () => {this.rightBuilder()}})JhFormSelectCell({title: '左标题',placeholder: '右侧自定义',rightWidget: () => {this.rightBuilder()}})Blank().height(30)JhButton({text: '提 交',onPressed: (): void => this.clickLogin()}).margin(15)}@BuilderleftBuilder() {Text('+86')// Row() {// }// .width('100%')// .height('100%')// .backgroundColor(Color.Yellow)}@BuilderrightBuilder() {Row() {}.width('100').height('100%').backgroundColor(Color.Orange)}clickLogin() {console.log('name:', JSON.stringify(this.name))console.log('pwd:', JSON.stringify(this.pwd))}
}

JhLoginTextField

在这里插入图片描述

用法

import { BaseNavigation, JhButton, JhLoginTextInput } from 'JhCommon'@Entry
@Preview
@Component
struct FormLoginTextInputTestPage {@State name: string = ''@State pwd: string = ''@State errorText: string = ''build() {Column() {BaseNavigation({ title: 'JhLoginTextInput' }) {Scroll() {Column() {this._body()}}}}}@Builder_body() {JhLoginTextInput({text: 'text赋初值',placeholder: '请输入'})JhLoginTextInput({placeholder: '输入时显示删除按钮'})JhLoginTextInput({placeholder: '输入时不显示删除按钮',isShowDeleteBtn: false})JhLoginTextInput({placeholder: '密码样式',isPwd: true})JhLoginTextInput({placeholder: '默认限制长度30',})JhLoginTextInput({placeholder: '限制长度10,a-zA-Z0-9',maxLength: 10,inputFilter: '[a-zA-Z0-9]'})JhLoginTextInput({placeholder: '限制长度5,数字输入类型',maxLength: 5,inputType: InputType.Number})JhLoginTextInput({placeholder: '左侧添加icon',leftIcon: $rawfile("svg/ic_login_user.svg")})JhLoginTextInput({placeholder: '左侧自定义',leftWidget: () => {this.leftBuilder()}})JhLoginTextInput({placeholder: '右侧自定义',rightWidget: () => {this.rightBuilder()}})JhLoginTextInput({placeholder: '取消下划线高亮和动画',borderAnimation: false,borderHighlight: false})Blank().height(8)JhLoginTextInput({text: this.name,labelText: '用户名',placeholder: '请输入用户名',leftIcon: $rawfile("svg/ic_login_user.svg"),inputCallBack: (value) => {this.name = value as string},})Blank().height(8)JhLoginTextInput({text: this.pwd,labelText: '密码',placeholder: '请输入密码',leftIcon: $rawfile("svg/ic_login_pwd.svg"),isPwd: true,inputCallBack: (value) => {this.pwd = value as string},})Blank().height(30)JhButton({text: '登 录',onPressed: (): void => this.clickLogin()}).margin(15)}@BuilderleftBuilder() {Text('+86')// Row() {// }// .width('100%')// .height('100%')// .backgroundColor(Color.Yellow)}@BuilderrightBuilder() {Row() {}.width('100').height('100%').backgroundColor(Color.Orange)}clickLogin() {console.log('name:', JSON.stringify(this.name))console.log('pwd:', JSON.stringify(this.pwd))}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1557255.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

PMP--冲刺题--解题--81-90

文章目录 12.采购管理--1.规划采购管理--在自制或外购分析中,可以使用回收期、投资回报率(ROI)内部报酬率(IRR)、现金流贴现、净现值(NPV)、收益成本净现值(BCA)或其他分…

如何使用ssm实现公司进销存管理系统设计与开发

TOC ssm792公司进销存管理系统设计与开发jsp 第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔记本的广…

python画图|曲线动态输出基础教程

在前述学习过程中,已经掌握基本的曲线图像画法,并尝试探索过3D动画基础教程。 相关文章可以通过下述链接直达: python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客 python动画教程|Animations using Matplotlib-官网教程程…

电玩体验馆计时软件可以倒计时的软件试用版下载 佳易王ps5计时器管理系统使用教程

一、前言 【软件试用版下载可以点击本文章最下方官网卡片】 电玩体验馆计时软件可以倒计时的软件试用版下载 佳易王ps5计时器管理系统使用教程 1、软件能够记录玩家开始的时间和节数时间,从而计算出时长。 2、根据预设的收费标准,软件可以自动计算出…

各省份自然灾害损失造成的直接经济损失数据(2009-2022年)

自然灾害是自然演变过程中不可避免的现象,它们对人类社会构成了巨大的威胁。中国作为一个自然灾害频发的国家,面临着种类繁多的灾害挑战,包括气象灾害、地质灾害、海洋灾害、生物灾害和森林草原火灾等。 数据来源:《中国环境统计…

【GESP】C++一级练习BCQM3030,保留12位小数

浮点数数位保留练习,%m.nf知识点,已在BCQM3027中详细介绍。 题解详见:https://www.coderli.com/gesp-1-bcqm3030/ 【GESP】C一级练习BCQM3030,保留12位小数 | OneCoder浮点数数位保留练习,%m.nf知识点,已在…

培训机构客户管理系统的设计+ssm论文源码调试讲解

2 系统开发环境 2.1微信开发者工具 微信开发者工具现在已经被小程序开发团队开发运行,目前微信开发者工具任然在不断的完善中,在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具,开发者工具将使用这个微信帐号的信息进行小程…

Android车载音频系统概览

目录 1. 什么是Android车载音频系统 2. Android 声音和声音流 2.1 Android 声音 2.2 外部声音流 2.3 输出设备 章节说明:本节内容是Android车载音频系统简介。 1. 什么是Android车载音频系统 官方英文名称是:Automotive audio systems 由于汽车上无论是音频设备的数量还…

QT 实现图片查看工具

QT 实现图片查看工具 1、选择图像文件 单文件选择 QFileDialog::getOpenFileName多文件选择 QFileDialog::getOpenFileNamesQList<QString> imageNames = QFileDialog::getOpenFileNames(this,tr("打开图片"),"",tr("图片文件 (*.png *.jpg *.b…

OpenHarmony中OpenSSL从1.1.1 升级到3.0.7 时不支持MD4算法导致wpa_supplicant报错问题解决

OpenHarmony中OpenSSL从1.1.1 升级到3.0.7 时不支持MD4算法导致wpa_supplicant报错问题解决 1 问题现象 我们在测试EAP-PEAP(MSCHAPV2)功能时发现如下打印,导致认证失败 2 初步分析 openssl_digest_vector 中 调用EVP_DigestInit_ex 时如果报错 会打印"OpenSSL: EVP…

人工智能重点知识点总结整理

一、章节知识点目录 绪论知识表示方法确定性推理非经典推理计算智能机器学习完结篇二、每章重点内容 1. 绪论 定义:人工智能(AI)

厨房用品分割系统源码&数据集分享

厨房用品分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-DCNV3&#xff06;yolov8-seg-AFPN-P345等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Global Al ln…

论文阅读笔记-XLNet: Generalized Autoregressive Pretraining for Language Understanding

前言 Google发布的XLNet在问答、文本分类、自然语言理解等任务上都大幅超越BERT,XLNet提出一个框架来连接语言建模方法和预训练方法。我们所熟悉的BERT是denoising autoencoding模型,最大的亮点就是能够获取上下文相关的双向特征表示,所以相对于标准语言模型(自回归)的预…

测绘工程专业职称申报条件是什么?

关于测绘工程专业职称申报条件&#xff0c;甘建二从初级、中级、高级给大家说一下&#xff1a; 一、初级&#xff08;助理&#xff09;测绘工程工程师评审条件&#xff1a; 1、测绘类或者相近专业类毕业 2、专科毕业满3年并且从事专业技术员职务工作2年以上 3、本科毕业后&a…

Qt-QVBoxLayout布局类控件(41)

目录 描述 属性 使用 每一个widget只能有一个布局管理器 描述 使⽤ QVBoxLayout 表⽰垂直的布局管理器. V 是 vertical 的缩写. 为此Qt提供了布局管理器 属性 layoutLeftMargin左侧边距layoutRightMargin右侧边距layoutTopMargin上⽅边距layoutBottomMargin下⽅边距layo…

Linus Torvalds 要求内核开发人员编写更好的 Git 合并提交信息

昨天在宣布 Linux 6.12-rc2 内核时&#xff0c;Linus Torvalds 要求内核维护者在提交信息方面做得更好。Torvalds 尤其希望内核维护者在描述拉取请求中的变更时&#xff0c;能更好地使用积极、命令式的语气。 Linux创建者在6.12-rc2 公告中解释道&#xff1a; 总之&#xff0c…

ChatGPT Canvas:系统提示词泄漏了~

OpenAI 推出了一款叫做 Canvas 的新工具&#xff0c;用来帮助用户更好地与 ChatGPT 协作写作和编程。详细介绍可以看这篇文章&#xff1a;ChatGPT Canvas&#xff1a;交互式对话编辑器-CSDN博客​编辑 以下是 OpenAI 新功能 “Canvas” 的系统提示内容 你是 ChatGPT&#xff0…

域渗透之: 域渗透环境搭建详解基于VMware

域控环境介绍 在域架构中&#xff0c;最核心的就是域控主机&#xff0c;域控主机分为三种: 普通域控额外域控只读域控 域控环境相关知识点介绍 创建域环境首先就是要创建域控主机。域控主机创建完成以后&#xff0c;需要把所有的计算机拉入域中&#xff0c;这样就形成了域控…

棒球运动物体检测系统源码分享

棒球运动物体检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

Apple Intelligence将于10月28日发布,ChatGPT集成推迟!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…