项目简介
TextLayoutBuilder是一个可定制任意样式的文本构建工具,包括字体间距、大小、颜色、布局方式、富文本高亮显示等,在文字显示的业务场景中都会使用到,特别是通知类特殊显示的字体样式时,TextLayoutBuilder极大的方便了开发者的开发效率。
效果演示

下载安装
ohpm install @ohos/textlayoutbuilder
使用说明:
第一步: 初始化,导入 TextLayout 组件到自己项目中,实例化TextLayout.Layout对象;
...
import TextLayout from '@ohos/textlayoutbuilder';
import {TextInfo} from '@ohos/textlayoutbuilder';
...
@State layout:TextLayout.Layout = new TextLayout.Layout();
...
第二步:属性设置,通过layout类对象设置UI属性来自定义所需风格,也可以添加所需的回调;
private aboutToAppear() {
let textInfo = new TextInfo();
textInfo.setStart(2)
textInfo.setEnd(8)
textInfo.setFontColor('#ff0000')
... ...
this.layout
.setText(this.strTest)
.setSpecialTextInfo(textInfo1)
.setSpecialTextInfo(textInfo2)
.setSpecialTextInfo(textInfo3)
.setSpecialTextClick((textInfo) =>{
console.info('我点击了 = '+textInfo.getText())
});
}
第三步:界面绘制,将定制好的layout传给TextLayout。
build() {
Column() {
Text("默认显示").fontSize(16).fontColor("#999999").margin({ left: 14, top: 14, bottom: 14 })
Column() {
TextLayout({ model: this.layout })
}.backgroundColor("#cccccc").margin({ left: 14, right: 14 }).borderRadius(10)
}.alignItems(HorizontalAlign.Start)
}
接口说明
let layout:TextLayout.Layout = new TextLayout.Layout();
- 设置文字内容:layout.setText(text: string)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
text | string | 是 | 文本内容 |
- 设置指定文字内容样式:layout.setSpecialTextInfo(specialTextInfo: TextInfo)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
specialTextInfo | TextInfo | 是 | 文本内容样式 |
- 设置文字颜色:layout.setTextColor(textColor: string|Color|number)
参数:
参数名 | 参数类型 | 必填 | 参数描述 | ||
---|---|---|---|---|---|
textColor | string | Color | number | 是 | 文本颜色 |
- 设置是否单行显示:layout.setSingleLine(singleLine: boolean)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
singleLine | boolean | 是 | 是否单行显示,默认否 |
- 设置最大行数:layout.setMaxLines(maxLines: number)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
maxLines | number | 是 | 最大行数 |
- 设置文本显示不下时的省略号替代方式:layout.setEllipsize(ellipsize: TextOverflow)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
ellipsize | TextOverflow | 是 | 文本溢出显示方式 |
- 设置文本对齐方式:layout.setAlignment(textalign: TextAlign)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
textalign | TextAlign | 是 | 文本对齐方式 |
- 设置每行最小显示字数:layout.setMinEms(minEms: number)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
minEms | number | 是 | 每行显示字数 |
- 设置组件是否设置内边距:layout.setIncludeFontPadding(shouldInclude: boolean)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
shouldInclude | boolean | 是 | 是否设置padding,默认否 |
- 设置最大宽度:layout.setMaxWidth(maxWidth: number)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
maxWidth | number | 是 | 最大宽度 |
- 设置是否开启按下文字时状态变化开关:layout.setIsEnablePressState(isEnablePressState: boolean)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
isEnablePressState | boolean | 是 | 是否开启按下文字时状态变化开关,默认否 |
- 设置按下文字状态样式:layout.setTextPressStateStyle(textPressStateStyle: string)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
textPressStateStyle | string | 是 | 按下文字状态样式 |
- 设置指定文本的点击事件:layout.setSpecialTextClick(clickCallback: (textInfo: TextInfo) => void)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
clickCallback | (textInfo: TextInfo) => void | 是 | 用户自定义回调函数 |
- 设置特殊文字开始位置:textInfo.setStart(start:number)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
start | number | 是 | 特殊文字开始位置 |
- 设置特殊文字结束位置:textInfo.setEnd(end:number)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
end | number | 是 | 特殊文字结束位置 |
- 设置文字颜色:textInfo.setFontColor(fontColor:string)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
fontColor | string | 是 | 文字颜色 |
- 设置文字内容:textInfo.setText(text:string)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
text | string | 是 | 文本内容 |
- 设置文字类型:textInfo.setTextType(textType:string)
参数:
参数名 | 参数类型 | 必填 | 参数描述 | ||
---|---|---|---|---|---|
textType | string | 是 | 文本类型(TEXT_TYPE_NORMAL | TEXT_TYPE_RICH | TEXT_TYPE_HTTP) |
- 设置文本字体之间的距离:textInfo.setFontLetterSpacing(fontLetterSpacing:string)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
fontLetterSpacing | string | 是 | 文本字体之间的距离 |
- 设置字体大小:textInfo.setFontSize(fontSize:string)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
fontSize | string | 是 | 字体大小 |
- 设置字体样式:textInfo.setFontStyle(fontStyle:string)
参数:
参数名 | 参数类型 | 必填 | 参数描述 |
---|---|---|---|
fontStyle | string | 是 | 字体样式 |
约束与限制
在下述版本验证通过:
- DevEco Studio 版本:3.1 Beta2(3.1.0.400), SDK: API9 Release(3.2.11.9)
目录结构
|---- TextLayoutBuilder
| |---- entry # 示例代码文件夹
| |---- library # TextLayout库文件夹
| |---- src
| |---- main
| |---- ets
| |---- commonents
| |---- TextInfo.ets # 富文本数据实体
| |---- TextLayout.ets # UI 自定义组件
| |---- index.ets # 对外接口
| |---- README.md # 安装使用方法
阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.1024c.cn/archives/21310,转载请注明出处。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.1024c.cn/archives/21310,转载请注明出处。
评论0