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

harmony开发之Text组件的使用

TextInput、TextArea是输入框组件,通常用于响应用户的输入操作,比如评论区的输入、聊天框的输入、表格的输入等,也可以结合其它组件构建功能页面,例如登录注册页面。

图片来源黑马程序员

Text组件的使用:

文本显示组件有两种方式,一种是字符串string,一种是读取指定的string格式的字符串!

可以实现,根据限定词,切换指定的国家语言,从而实现设备走向国家化!

Textinput组件的使用:

TextInput有5种可选类型,分别为Normal基本输入模式、Password密码输入模式、Email邮箱地址输入模式、Number纯数字输入模式、PhoneNumber电话号码输入模式。

设置无输入时的提示文本。

TextInput({placeholder:'我是提示文本'})

设置输入框当前的文本内容。

添加backgroundColor改变输入框的背景颜色。

源码部分如下:

@Entry
@Component
struct Index2 {@State imageWidth: number = 100build() {Column() {Row(){Image($r('app.media.icon')).width(this.imageWidth)//控制图片的大小}.width('100').height("100").justifyContent(FlexAlign.Center)Row(){Text($r('app.string.width_label')).fontSize(20).fontWeight(FontWeight.Bold)TextInput({text: this.imageWidth.toFixed(0)}).width(150).backgroundColor('#FFF').type(InputType.Number).onChange( value => {    //获取输入this.imageWidth = parseInt(value)})}.width('100%').padding({left: 14, right: 14}).justifyContent(FlexAlign.SpaceBetween)Divider().width('91%')Row(){Button('缩小').width(80).fontSize(20).onClick(() => {if(this.imageWidth >= 10){this.imageWidth -= 10}})Button('放大').width(80).fontSize(20).onClick(() => {if(this.imageWidth < 300){this.imageWidth += 10}})}.width('100%').margin({ top: 35, bottom: 35 }).justifyContent(FlexAlign.SpaceEvenly)Slider({min: 100,max: 300,value: this.imageWidth,step: 10,}).width('100%').blockColor('#36D').trackThickness(5).showTips(true).onChange(value => {this.imageWidth = value})}.width('100%').height('100%')}
}

文本框主要用于获取用户输入的信息,把信息处理成数据进行上传,绑定onChange事件可以获取输入框内改变的内容。

场景示例

用于表单的提交,在用户登录/注册页面,用户的登录或注册的输入操作。

TextInput().onChange((value: string) => {console.info(value);}).onFocus(() => {console.info('获取焦点');})

TextArea(该组件从API Version 7开始支持。)

多行文本输入框组件,当输入的文本内容超过组件宽度时会自动换行显示。

除支持通用事件外(通用事件包含:宽高,内外边距。),还支持以下事件:

onCopy(callback:(value: string) => void)长按输入框内部区域弹出剪贴板后,点击剪切板复制按钮,触发该回调。当设置CopyOptions.None时,当前TextArea中的文字无法被复制或剪切,仅支持粘贴。

onCut(callback:(value: string) => void)长按输入框内部区域弹出剪贴板后,点击剪切板剪切按钮,触发该回调。

onPaste(callback:(value: string) => void)长按输入框内部区域弹出剪贴板后,点击剪切板粘贴按钮,触发该回调。

caretPosition(value: number): void    可以设置光标的位置。

示例代码如下:

// xxx.ets
@Entry
@Component
struct TextAreaExample {@State text: string = ''controller: TextAreaController = new TextAreaController()build() {Column() {TextArea({placeholder: 'The text area can hold an unlimited amount of text. input your word...',controller: this.controller}).placeholderFont({ size: 16, weight: 400 })//设置placeholder文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。.width(336).height(56).margin(20).fontSize(16).fontColor('#182431').backgroundColor('#FFFFFF').onChange((value: string) => {this.text = value})Text(this.text)Button('Set caretPosition 1').backgroundColor('#007DFF')//背景颜色.margin(15)//边距.onClick(() => {// 设置光标位置到第一个字符后this.controller.caretPosition(1)})}.width('100%').height('100%').backgroundColor('#F1F3F5')}
}

以上信息,来自官网手册

相关文章:

  • 【wvp】测试记录
  • 华媒舍:引擎霸屏推广,10个技巧帮助你登上霸者!
  • 【risc-v】易灵思efinix FPGA riscv嵌入式软件源码分享
  • TCP通信
  • Linux lshw命令(lshw指令)(List Hardware,获取底层硬件信息)(查询硬件信息)
  • echarts更改工具栏图标为本地图片
  • 前端知识笔记(三十四)———HBuilder的下载与使用(详细步骤)
  • 游戏架构之继承对象模型和组件对象模型
  • IDEA删除最近打开的文件记录
  • VSCode 配置JavaScript环境
  • Jinja2使用Layui报 “d is not defined“
  • git分支修改名称并推送到远程
  • Linux数据库Mysql增删改查
  • 【Linux】进程间通信之管道--命名管道匿名管道通信进程池设计
  • css实现正六边形嵌套圆心
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • ERLANG 网工修炼笔记 ---- UDP
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • JS数组方法汇总
  • Linux链接文件
  • Meteor的表单提交:Form
  • ucore操作系统实验笔记 - 重新理解中断
  • 关于List、List?、ListObject的区别
  • 汉诺塔算法
  • 解析 Webpack中import、require、按需加载的执行过程
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 面试总结JavaScript篇
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 如何在 Tornado 中实现 Middleware
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用 @font-face
  • 使用docker-compose进行多节点部署
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • C# - 为值类型重定义相等性
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #define与typedef区别
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (003)SlickEdit Unity的补全
  • (二)springcloud实战之config配置中心
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (分布式缓存)Redis哨兵
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (已解决)什么是vue导航守卫
  • (轉貼) UML中文FAQ (OO) (UML)
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ./configure,make,make install的作用
  • .Net 知识杂记
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .net分布式压力测试工具(Beetle.DT)
  • .NET开源项目介绍及资源推荐:数据持久层