#夏日挑战赛# 3.6 TextInput组件和TextArea组件 原创 精华
[ 本文正在参加星光计划3.0–夏日挑战赛 ]本节讲解ArkUI eTS文本输入组件TextInput和TextArea的基本用法,分别对应单行文本输入场景和多行文本输入场景。最后,针对TextInput组件UI外观无法定制的弊端,演示HUI文本输入增强组件Input的运行效果。
3.6.1 TextInput组件
新建TextInputSample.ets页面。TextInput组件的接口、属性和事件说明如下:
其中:
接口参数placeholder是可选的,为了对用户更友好,建议设置。同时,建议使用文字资源,适应多语言显示。
属性placeholderColor建议使用颜色资源$r(“app.color.fgLevel1”),适应深色模式/浅色模式切换时的完美表现。
属性type、placeholderFont、enterKeyType和caretColor视需求而定,如果省略这几个属性也能满足需要,可以节省代码。
事件中onChange是最实用的,监测文本变化后可将值记录下来用于表单提交。其它两个事件通常可以省略。
调用示范代码如下:
在浅色模式和深色模式下运行效果,如下图所示:
本地预览器无法调出手机键盘,可在远程模拟器体验效果:
从上面的效果表现,我们发现TextInput组件已经是一个多态组件了:
TextInput组件的背景色可以自动适配深色模式和浅色模式;
组件的宽度默认撑开为100%,可以适配手机横竖屏和平板设备;
组件的外边框已设置为胶囊型边框外观,和胶囊行按钮类似。
3.6.2 TextArea组件
多行文本组件TextArea的接口、属性和方法与TextInput类似,说明如下:
相对TextInput组件,增加了一个设置文本水平对齐的属性.textAlign(TextAlign)。通常,我们会设置多行文本组件的高度属性和文本颜色属性。示范代码如下:
在竖屏手机浅色模式和平板横屏深色模式下,效果如下:
可以看出,多行文本组件TextArea也是一个多态组件。
3.6.3 HUI文本输入增强组件Input
TextInput组件是一个已经被鸿蒙官方封装的多态组件,它的外观固定为胶囊型风格。如果希望文本输入组件是无边框效果呢?这个时候你会发现,即使你设置边框的属性,也没办法达成你想要的效果。在后面《第9章 为ArkUI量身打造的多态组件库HUI》中,我会发布一款文本输入增强组件,命名采用Html中通用的名称Input。Input组件从外观定制灵活性和功能性方面全面增强目前TextInput组件的不足。在远程模拟器上运行效果如下:
非常清晰的演示,感谢老师分享