【ArkUI 文本展示系列】一:如何选择文本组件

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组件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值