Harmany-UIAbility-Text组件——【坚果派-红目香薰】

举报
红目香薰 发表于 2024/03/31 18:04:47 2024/03/31
【摘要】 ​ 摘要作者:红目香薰团队:坚果派 团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 目录摘要Text组件文本样式设置文本超长显示设置文本装饰线Text组件Text组件用于在界面上展示一段文本信息,可以包含子组件Span。文本样式针对包含文本元素的组件,例如Text、Span、Button、TextInput等,可使用fontColor、fontS...

 摘要

作者:红目香薰
团队:坚果派
团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 

目录

摘要

Text组件

文本样式

设置文本超长显示

设置文本装饰线


Text组件

Text组件用于在界面上展示一段文本信息,可以包含子组件Span。

文本样式

针对包含文本元素的组件,例如Text、Span、Button、TextInput等,可使用fontColor、fontSize、fontStyle、 fontWeight、fontFamily这些文本样式,分别设置文本的颜色、大小、样式、粗细以及字体,文本样式的属性如下表:

名称

参数类型

描述

fontColor

ResourceColor

设置文本颜色。

fontSize

Length | Resource

设置文本尺寸,Length为number类型时,使用fp单位。

fontStyle

FontStyle

设置文本的字体样式。默认值:FontStyle.Normal。

fontWeight

number | FontWeight | string

设置文本的字体粗细,number类型取值[100, 900],取值间隔为100,默认为400,取值越大,字体越粗。string类型仅支持number类型取值的字符串形式,例如“400”,以及“bold”、“bolder”、“lighter”、“regular”、“medium”,分别对应FontWeight中相应的枚举值。默认值:FontWeight.Normal。

fontFamily

string | Resource

设置文本的字体列表。使用多个字体,使用“,”进行分割,优先级按顺序生效。例如:“Arial,sans-serif”。

下面示例代码中包含两个Text组件,第一个使用的是默认样式,第二个给文本设置了一些文本样式。

@Entry@Component

struct Index {

@State message: string = 'HarmonyOS'


build() {

Row() {

Column() {

Text('HarmonyOS') //基础文字

Text(this.message) //引用变量文字·添加样式

.fontColor(Color.Blue) //文字颜色

.fontSize(50) //文字大小

.fontStyle(FontStyle.Italic) //斜体

.fontWeight(FontWeight.Bold) //加粗

.fontFamily('华文行楷') //字体

.textAlign(TextAlign.Start)//文本位置,Start Center End

.padding(10)//内边距

.margin(10)//外边距

.backgroundColor('#C75450')

.width('100%')

}

.width('100%')

}

.width('100%')

.height('100%')

}

}

实际效果:

​编辑

所有的效果都对应的上,没有问题。

注:

textAlign参数类型为TextAlign,定义了以下几种类型:

Start(默认值):水平对齐首部。
Center:水平居中对齐。
End:水平对齐尾部。

​编辑

效果还是很明显的。

设置文本超长显示

当文本内容较多超出了Text组件范围的时候,您可以使用textOverflow设置文本截取方式,需配合maxLines使用,单独设置不生效,maxLines用于设置文本显示最大行数。下面的示例代码将textOverflow设置为Ellipsis ,它将显示不下的文本用 "..." 表示:

​编辑

示例代码:

@Entry@Component

struct Index {

@State message: string = 'HarmonyOS'

@State music_yanyuan: string = "说话的方式简单点,递进的情绪请省略,你又不是个演员,别设计那些情节,没意见," +

"我只想看看你怎么圆,你难过的太表面,像没天赋的演员,观众一眼能看见。"


build() {

Row() {

Column() {

Text(this.music_yanyuan) //文本超长显示

.fontSize(22)

.maxLines(3)

.textOverflow({ overflow: TextOverflow.Ellipsis })

.backgroundColor('#9E2927')

.width('100%')

}

.width('100%')

}

.width('100%')

.height('100%')

}

}

设置文本装饰线

使用decoration设置文本装饰线样式及其颜色,大家在浏览网页的时候经常可以看到装饰线,例如带有下划线超链接文本。decoration包含type和color两个参数,其中type用于设置装饰线样式,参数类型为TextDecorationTyp,color为可选参数。

​编辑

示例代码:

@Entry@Component

struct Index {

@State message: string = 'HarmonyOS'

@State music_yanyuan: string = "说话的方式简单点,递进的情绪请省略,你又不是个演员,别设计那些情节,没意见," +

"我只想看看你怎么圆,你难过的太表面,像没天赋的演员,观众一眼能看见。"


build() {

Row() {

Column() {

Text(this.music_yanyuan) //文本超长显示

.fontSize(50)

.maxLines(5)

.textOverflow({ overflow: TextOverflow.Ellipsis })

.decoration({ type: TextDecorationType.Underline, color: Color.Black })

.backgroundColor(0xE6F2FD)

.width('100%')

}

.width('100%')

}

.width('100%')

.height('100%')

}

}

TextDecorationTyp包含以下几种类型:

None:不使用文本装饰线。
Overline:文字上划线修饰。
LineThrough:穿过文本的修饰线。
Underline:文字下划线修饰。

​编辑

示例代码:

@Entry@Component

struct Index {

@State message: string = 'HarmonyOS'

@State music_yanyuan: string = "说话的方式简单点,递进的情绪请省略,你又不是个演员,别设计那些情节,没意见," +

"我只想看看你怎么圆,你难过的太表面,像没天赋的演员,观众一眼能看见。"


build() {

Row() {

Column() {

Text(this.music_yanyuan) //文本超长显示

.fontSize(50)

.maxLines(2)

.textOverflow({ overflow: TextOverflow.Ellipsis })

.decoration({ type: TextDecorationType.None, color: Color.Black })

.backgroundColor(0xE6F2FD)

.width('100%')

Text(this.music_yanyuan) //文本超长显示

.fontSize(50)

.decoration({ type: TextDecorationType.Overline, color: Color.Red })

.backgroundColor(0xE6F2FD)

.borderWidth(1).padding(10).margin(5)

Text(this.music_yanyuan) //文本超长显示

.fontSize(50)

.maxLines(2)

.textOverflow({ overflow: TextOverflow.Ellipsis })

.decoration({ type: TextDecorationType.LineThrough, color: Color.Black })

.backgroundColor(0xE6F2FD)

.width('100%')

Text(this.music_yanyuan) //文本超长显示

.fontSize(50)

.maxLines(2)

.textOverflow({ overflow: TextOverflow.Ellipsis })

.decoration({ type: TextDecorationType.Underline, color: Color.Black })

.backgroundColor(0xE6F2FD)

.width('100%')

}

.width('100%')

}

.width('100%')

.height('100%')

}

}



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。