Text作为最基础的文本展示组件,主要用于展示纯文本,适用于不允许编辑的场景。
一:认识Text组件
Text是文本展示的组件。Text单独使用时,所有文字作为一个整体,文字的样式保持一致,包括字号、颜色、对齐方式等,调整字体样式的接口对所有文字生效。Text支持通用属性,可以调整宽高,也支持通用事件,可以响应点击事件。Text自身也有一些接口,用来自适应调整布局,如设置最大行数、超长文本省略方式。
Text组件中的文本支持选中,选中后弹出菜单,可以全选、复制文本。
Text组件本身不是容器节点,与Column、Row等布局组件不同,只能挂载特定的子组件,如Span/ImageSpan/SymbolSpan。
二:与Text相关的组件
与Text组件关联密切的组件有:Span、ImageSpan、SymbolSpan、StyledString、MutableStyledString。这些组件都具备设置Text文本样式的能力。其中Span、ImageSpan、SymbolSpan是Text的子组件,直接添加到Text中。属性字符串StyledString/MutableStyledString通过setStyledString接口设置文本样式。
- Span的能力是插入文本,并且可以给这一段文本设置文本样式,如字号、颜色。
- SymbolSpan的能力是插入图标,并且具有SymbolGlyph的部分能力。
- ImageSpan的能力是插入图片,支持Image的部分能力。
Span、SymbolSpan、ImageSpan都在Text组件内添加时,可以修改部分文本的样式、实现图文混排。但是无法实现自定义布局,Span、SymbolSpan、ImageSpan也不具备布局相关的通用属性和多数通用事件。
StyledString、MutableStyledString都称为属性字符串,MutableStyledString继承于StyledString,完全覆盖Span、SymbolSpan、ImageSpan的能力,并且可以设置更多文本样式和交互效果,拥有更丰富能力。推荐使用属性字符串。
三:可以显示文本的其他组件
ArkUI有许多能够显示文本的组件,在官网指南文本概述中有介绍。在这些组件中,按照能否编辑文本,可以分为两组:
- 不允许编辑文本:Text、SymbolGpyph、Hyperlink、Marquee、RichText
- 允许编辑文本:TextInput、TextArea、Search、RichEditor
四:为什么选择Text组件
“不允许编辑文本”这一类的5个组件中,SymbolGpyph、Hyperlink、Marquee、RichText的能力比较单一,只适用特定场景。如SymbolGpyph用于展示图标、Hyperlink用于创建超链接文本、Marquee用于展示跑马灯、RichText用于展示HTML格式文本。
| 组件 | 用途说明 |
|---|---|
| SymbolGpyph | 展示图标 |
| Hyperlink | 创建超链接文本 |
| Marquee | 展示跑马灯效果 |
| RichText | 展示HTML格式文本 |
Text组件的能力则非常全面,不仅可以高性能展示文本,也可以设置文本样式,如字号、文本对齐方式、最大行数,还可以完成图标展示(SymbolGpyph)、超链接文本(Hyperlink)、跑马灯(Marquee)的功能。Text组件的能力还在不断增强,而Hyperlink、Marquee逐步停止演进,在需要展示超链接、跑马灯的场景,建议开发者优先选择Text组件实现。图标展示的场景,仍然建议使用SymbolGpyph。
“允许编辑文本”这一类的5个组件,也可以把文字显示在屏幕上。尽管通过enabled接口可以让输入框变得不可编辑,但是在设置文本样式的,Text自身的功能更丰富,Text可以搭配Span、StyeldString更灵活地设置样式。在展示长文本时,Text的性能表现也比RichEditor更出色。
| 组件 | 用途说明 |
|---|---|
| TextInput | 编辑单行纯文本 |
| TextArea | 编辑多行纯文本 |
| Search | 编辑单行纯文本,自带搜索按钮 |
| RichEditor | 编辑富文本,可以插入图片 |
因此,选型的建议可以简单总结为
- 需要编辑文本时,在TextInput、TextArea、Search、RichEditor中选择
- 需要展示HTML格式文本时,使用RichText组件
- 需要展示图标时,使用SymbolGlyph组件
- 其他情况,需要展示文本时,使用Text组件
409

被折叠的 条评论
为什么被折叠?



