五、ArkTS 常用组件-文本显示 (Text / Span)

简介: 本文档介绍了ArkTS中的文本显示组件(Text/Span),包括其基本概念、参数设置、常用属性(如字体大小、粗细、颜色、对齐方式)、最大行数及超长处理方法,以及子组件Span的使用方法。Text组件支持多种参数类型,包括字符串、资源引用等,并提供了丰富的属性设置选项以满足不同的文本显示需求。Span组件则主要用于在Text组件内部实现更精细的文本格式化,如设置不同的字体颜色、大小、装饰线等,同时支持点击事件的添加。

五、ArkTS 常用组件-文本显示 (Text / Span)

文本显示 (Text/Span):

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-common-components-text-display-V13

1. 概述

Text为文本组件,通常用于展示用户视图,如显示文章的文字

地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/ts-basic-components-text-V13

2. 参数

Text组件的参数类型为string | Resource,下面分别对两个参数类型进行介绍:

  • string类型

Text('我是一段文本')

  • Resource 类型

Resource类型的参数用于引用 resources/*/element目录中定义的字符串,同样需要使用$r()引用。

例如resources/base/element目录中有一个string.json文件,内容如下

{

 "string": [

   {

     "name": "module_desc",

     "value": "模块描述"

   },

   {

     "name": "EntryAbility_desc",

     "value": "description"

   },

   {

     "name": "EntryAbility_label",

     "value": "label"

   }

 ]

}

此时我们便可通过如下方式引用并显示module_desc的内容。

Text($r('app.string.module_desc'))

3. 常用属性

3.1. 字体大小

字体大小可通过fontSize()方法进行设置,该方法的参数类型为string | number| Resource,下面逐一介绍

  • string类型

string类型的参数可用于指定字体大小的具体单位,例如fontSize('100px'),字体大小的单位支持pxfp。其中fp(font pixel)vp类似,具体大小也会随屏幕的像素密度变化而变化。

  • number类型

number类型的参数,默认以fp作为单位。

  • Resource类型

Resource类型参数用于引用resources下的element目录中定义的数值。

Text($r('app.string.module_desc'))

.fontSize(50)

字体粗细

字体粗细可通过fontWeight()方法进行设置,该方法参数类型为number | FontWeight | string,下面逐一介绍

  • number类型

number类型的取值范围是[100,900],取值间隔为100,默认为400,取值越大,字体越粗。

  • FontWeight类型

FontWeight为枚举类型,可选枚举值如下

名称 描述
FontWeight.Lighter 字体较细。
FontWeight.Normal 字体粗细正常。
FontWeight.Regular 字体粗细正常。
FontWeight.Medium 字体粗细适中。
FontWeight.Bold 字体较粗。
FontWeight.Bolder 字体非常粗。
  • string类型

string类型的参数仅支持number类型和FontWeight类型参数的字符串形式,例如例如'100'bold

Text('FontWeight.Lighter')

         .fontSize(30)

         .fontWeight(FontWeight.Lighter)

       Text('FontWeight.Normal')

         .fontSize(30)

         .fontWeight(FontWeight.Normal)

       Text('FontWeight.Regular')

         .fontSize(30)

         .fontWeight(FontWeight.Regular)

       Text('FontWeight.Medium')

         .fontSize(30)

         .fontWeight(FontWeight.Medium)

       Text('FontWeight.Bold')

         .fontSize(30)

         .fontWeight(FontWeight.Bold)

       Text('FontWeight.Bolder')

         .fontSize(30)

         .fontWeight(FontWeight.Bolder)

3.3. 字体颜色

字体颜色可通过fontColor()方法进行设置,该方法参数类型为Color | string | number | Resource,下面逐一介绍

  • Color类型

Color`为枚举类型,其中包含了多种常用颜色,例如`Color.Green

  • string类型

string`类型的参数可用于设置 **rgb** 格式的颜色,具体写法可以为`'rgb(0, 128, 0)'`或者`'#008000'

  • number类型

number`类型的参数用于使用16进制的数字设置 **rgb** 格式的颜色,具体写法为`0x008000

  • Resource类型

Resource类型的参数用于应用resources下的element目录中定义的值。

  Text('Color.Blue')

     .fontSize(30)

     .fontColor(Color.Blue)


   Text('Color.Gray')

     .fontSize(30)

     .fontColor(Color.Gray)


   Text('Color.Green')

     .fontSize(30)

     .fontColor(Color.Green)


   Text('Color.Red')

     .fontSize(30)

     .fontColor(Color.Red)


   Text('Color.Yellow')

     .fontSize(30)

     .fontColor(Color.Yellow)


   Text('Color.Black')

     .fontSize(30)

     .fontColor(Color.Black)

3.4. 文本对齐

文本对齐方向可通过textAlign()方法进行设置,该方法的参数为枚举类型TextAlign,可选的枚举值如下

名称 描述
TextAlign.Start 首部对齐
TextAlign.Center 居中对齐
TextAlign.End 尾部对齐

各选项效果如下

Text($r('app.string.arkTS_msg'))

 .fontSize(18)

 .borderWidth(1)

 .textAlign(TextAlign.Center)

 .width(300)


Text($r('app.string.arkTS_msg'))

 .fontSize(18)

 .borderWidth(1)

 .textAlign(TextAlign.Start)

 .width(300)


Text($r('app.string.arkTS_msg'))

 .fontSize(18)

 .borderWidth(1)

 .textAlign(TextAlign.End)

 .width(300)

3.5. 最大行数和超长处理

可使用maxLines()方法控制文本的最大行数,当内容超出最大行数时,可使用textOverflow()方法处理超出部分,该方法的参数类型为{ overflow: TextOverflow },其中TextOverflow为枚举类型,可用枚举值有

名称 描述
TextOverflow.Clip 文本超长时,进行裁剪显示。
TextOverflow.Ellipsis 文本超长时,显示不下的文本用省略号代替。
TextOverflow.MARQUEE 文本溢出其尺寸时,文本将滚动显示

各选项效果如下

Text($r('app.string.arkTS_msg'))

 .fontSize(18)

 .borderWidth(1)

 .width(300)

Text('原始内容').textAlign(TextAlign.Center).width(300)


Text($r('app.string.arkTS_msg'))

 .fontSize(18)

 .borderWidth(1)

 .maxLines(3)

 .textOverflow({overflow:TextOverflow.Clip})

 .width(300)

Text('Clip').textAlign(TextAlign.Center).width(300)



Text($r('app.string.arkTS_msg'))

 .fontSize(18)

 .borderWidth(1)

 .maxLines(3)

 .textOverflow({overflow:TextOverflow.Ellipsis})

 .width(300)

Text('Ellipsis').textAlign(TextAlign.Center).width(300)


Text($r('app.string.arkTS_msg'))

     .fontSize(18)

     .borderWidth(1)

     .maxLines(3)

     .textOverflow({overflow:TextOverflow.MARQUEE})

     .width(300)

Text('MARQUEE').textAlign(TextAlign.Center).width(300)

子组件Span

Span只能作为TextRichEditor组件的子组件显示文本内容。可以在一个Text内添加多个Span来显示一段信息,例如产品说明书、承诺书等。

  • 创建Span。
    Span组件需要写到Text组件内,单独写Span组件不会显示信息,Text与Span同时配置文本内容时,Span内容覆盖Text内容。

Text('我是Text') {

 Span('我是Span')

}

.padding(10)

.borderWidth(1)

  • 设置文本装饰线及颜色。
    通过decoration设置文本装饰线及颜色。

Text() {

 Span('我是Span1,')

   .fontSize(16)

   .fontColor(Color.Grey)

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

 Span('我是Span2')

   .fontColor(Color.Blue)

   .fontSize(16)

   .fontStyle(FontStyle.Italic)

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

 Span(',我是Span3')

   .fontSize(16)

   .fontColor(Color.Grey)

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

  • 通过textCase设置文字一直保持大写或者小写状态。

Text() {

     Span('I am Upper-span')

       .fontSize(12)

       .textCase(TextCase.UpperCase)

   }

   .borderWidth(1)

   .padding(10)

  • 添加事件。
    由于Span组件无尺寸信息,事件仅支持添加点击事件onClick。

       Text() {

         Span('I am Upper-span').fontSize(12).textCase(TextCase.UpperCase).onClick(() => {

           console.info('我是Span——onClick')

         })

       }

公众号搜“Harry技术”,关注我,带你看不一样的人间烟火!

目录
相关文章
|
API 前端开发 Python
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
710 0
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
|
API 索引 数据处理
【鸿蒙软件开发】ArkTS基础组件之Select(下拉菜单)、Slider(滑动条)
【鸿蒙软件开发】ArkTS基础组件之Select(下拉菜单)、Slider(滑动条)
3326 0
【鸿蒙软件开发】ArkTS基础组件之Select(下拉菜单)、Slider(滑动条)
|
数据安全/隐私保护 开发者
六、ArkTS 常用组件-按钮(Button)/切换按钮(Toggle)/文本输出(TextInput)
`Button` 组件是 HarmonyOS 应用开发中的基本组件之一,主要用于响应用户的点击操作。它支持两种使用方式:不包含子组件和包含子组件。不包含子组件时,`Button` 通过 `label` 属性设置按钮上的文字,同时提供 `options` 参数来配置按钮类型和点击效果;包含子组件的方式则允许更灵活的内容展示,如图片或复杂布局,此时无需设置 `label`。此外,`Button` 组件还提供了设置背景颜色、边框圆角等样式的方法,以及绑定点击事件的功能,使开发者能够轻松实现丰富的交互体验。
931 0
六、ArkTS 常用组件-按钮(Button)/切换按钮(Toggle)/文本输出(TextInput)
|
编解码
四、ArkTS 常用组件-图片(Image)
ArkTS 常用组件-图片(Image)简介:Image 组件用于在应用中显示图片,支持本地和网络图片的加载,提供了多种参数类型如 string、Resource 和 media.PixelMap。常用属性包括图片尺寸设置(width()、height())、图片缩放模式(objectFit())及图片插值(interpolation()),确保图片在不同场景下的最佳显示效果。此外,Image 组件还支持图片资源的灵活引用方式,如通过 $r() 函数引用 resources 目录下的图片资源。
1225 2
|
API UED 开发者
鸿蒙next版开发:ArkTS组件通用属性(透明度设置)
在HarmonyOS 5.0中,ArkTS引入了透明度设置属性`opacity`,允许开发者自定义组件的透明度,从而创建复杂的视觉效果和提升用户体验。本文详细解读了`opacity`属性的用法,并提供了示例代码,展示了如何在不同透明度下展示组件。透明度设置在UI开发中具有多种用途,如创建重叠效果、增强美观性和实现动画效果。
1336 7
|
11月前
|
前端开发 JavaScript API
HarmonyOS:ArkTS 显式动画 animateTo 自学指南
本文深入解析了 ArkTS 中的 `animateTo` 全局显式动画接口,帮助开发者掌握其使用方法。文章从接口概述、参数详解到使用注意事项,结合实际示例代码,全面展示了如何通过配置 `AnimateParam` 对象实现流畅的动画效果。内容涵盖属性动画、布局变化及组件转场等场景,并强调不同版本的支持特性。适合初学者系统学习,也供进阶开发者参考优化动画体验。希望本文能助你快速上手 `animateTo`!
611 7
|
开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(文本通用)
在HarmonyOS 5.0中,ArkTS提供了丰富的文本通用属性,如textAlign、maxLines、textOverflow、fontSize、fontColor、fontStyle、fontWeight、fontFamily、lineHeight、letterSpacing和decoration等,用于实现多样的文本显示和样式效果。本文详细解读了这些属性,并提供了示例代码,帮助开发者更好地利用这些工具,提升应用界面的美观和实用性。
974 8
|
UED 开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(位置设置)
在HarmonyOS next中,ArkTS提供了align、direction、position、markAnchor、offset和alignRules等通用属性,用于精确控制组件在用户界面中的位置和布局。本文详细解读了这些属性,并提供了示例代码进行说明。通过这些属性,开发者可以实现精确布局、动态界面调整和提升用户体验。
1848 6
|
UED 开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(布局约束)
在HarmonyOS next中,ArkTS提供了一系列通用属性来设置组件的布局约束,使开发者能够灵活控制组件的布局行为。本文详细解读了这些属性,包括`space`、`justifyContent`、`alignItems`、`layoutWeight`、`matchParent`和`wrapContent`,并通过示例代码展示了它们的使用方法。这些属性有助于实现响应式布局、动态界面调整和提升用户体验。
664 5
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
1108 2