<text>
<text> 是 Lynx 内置元件,用来显示文本内容。支持指定文字样式,支持绑定点击事件回调。<text> 内部可以嵌套 <text>, <image>, 以及 <view>,以实现相对复杂的图文内容展示。
使用指南
<text> 元件具有自己的布局上下文,类似于 Web 中的行内格式化上下文。与 <view> 不同,它不支持 display 等属性。如需了解更多关于 <text> 元件的文本样式设置,请参阅文本与排版指南。
嵌套 <text>
嵌套 <text> 指的是在 <text> 元素标签内部嵌套另一个 <text> 元素标签。
由于 Lynx 默认不开启 CSS 继承,子节点并不会继承父节点的文本相关属性。我们建议在子节点上显示声明需要的样式。
但是,嵌套 <text> 比较特殊,未开启 CSS 继承时也会应用父 <text> 的 <color> 和 <font-family> 属性,为保持一致建议在內联 <text> 显式覆盖父 <text> 的属性。
嵌套 <image>
嵌套 <image> 指的是在 <text> 元素标签内部嵌套另一个 <image> 元素标签,可以用于实现图文混排。
嵌套 <view>
写在 <text> 元件内部的 <view> 会具有內联的特性,参与文本的布局。并且内部可以支持 <view> 标签的所有 功能,内部可以添加边框、圆角以及其他任意元件内容。
<inline-truncation>
<inline-truncation> 标签用于自定义文本出现省略时需要显示在文本末尾的内容。
RTL 适配
<text> 元件支持 RTL 语言的排版显示,在默认情况下,<text> 元件会根据文本内容判断文本语言,进而使用对应的排版方式。开发者也可以 通过设置 direction 样式指定使用 RTL 排版。
当 direction 设置为 rtl 或 lynx-rtl 时,text-align:start 会被转换成 text-align:right,同理 text-align:end 会被转换成 text-align:left。
当 direction 设置为 lynx-rtl 时,text-align:left 会被转换成 text-align:right,同理 text-align:right 会被转换成 text-align:left。
属性
属性名和属性值用于描述元件的行为和外观
text-maxline
限制文本内容显示的最大行数,同时需要设置 overflow:hidden
include-font-padding Android
开启安卓文本上下增加额外的 padding,开启会导致部分场景双端不一致
tail-color-convert
默认情况下,如果文字发生截断,插入的 ... 所显示的颜色会是由最接近的 inline text 上的 style 指定的,如果开启该属性,... 的颜色会由最外层的 text 标签上的 style 中指定
text-single-line-vertical-align
用于设置单行纯文本行内居中和对齐,可通过设置 'top' | 'center' | 'bottom' 改变其行为。建议仅在默认字体不满足居中对齐要求时使用,会增加文本测量耗时
text-selection
设置是否开启文本选择功能,开启时需要同时设置 flatten={false}
custom-context-menu
在开启 text-selection 之后生效,用于设置选择复制之后是否开启自定义弹出的上下文菜单
custom-text-selection
在开启 text-selection 之后生效,用于设置是否开启自定义文本选择功能,开启时元件不再处理选择复制相关手势逻辑,需要开发者通过 setTextSelection 等 API 控制
事件
前端可以在元件上绑定相应事件回调来监听元件的运行时行为。支持所有基础事件。
layout
layout 事件会返回文本布局后的结果信息,其中包含当前文本的行数,以及每行的文字在整段文本中的起始和结束位置。
selectionchange
文本选中范围变化时触发该事件。
方法
前端可以通过 SelectorQuery API 执行组件的方法。
setTextSelection
通过开始和结束位置设置文本选中内容,并且可以控制开始和结束浮标是否 显示,回调参数 res 的格式如下:
getTextBoundingRect
获取指定范围文本的包围盒,,回调参数 res 的格式如下:
getSelectedText
获取选中文本的字符串
加载自定义字体
可以通过 @font-face 来指定自定义的字体资源,然后通过 font-family 属性来使用。
需要客户端通过 GenericResourceFetcher 实现对应的字体资源加载器,用来下载网络字体资源。




