当前位置: 首页 > news >正文

第九节HarmonyOS 常用基础组件1-Text

一、组件介绍

        组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI声名式为开发者提供了丰富多样的UI组件,我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。

        组件根据功能可以分为以下五大类:基础组件、容器组件、媒体组件、绘制组件、画布组件。其中基础组件时视图层的基本组成单位,包括Text、Image、TextInput、Buttton、LoadingProgress等。

下面我们将分别介绍这些常用基础组件的使用:

  • Text

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

  1. 文本样式

        针对包含文本元素的组件,例如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 = 'Hello World';build() {Row() {Column() {Text('HarmonyOS')Text('HarmonyOS').fontColor(Color.Red).fontSize(22).fontStyle(FontStyle.Italic).fontWeight(FontWeight.Bold).fontFamily('Arial')Text('HarmonyOS').fontColor(Color.Green).fontSize(26).fontStyle(FontStyle.Normal).fontWeight(700).fontFamily('sans-serif')}.width('100%')}.height('100%')}
}

2、设置文本对齐方式

使用textAlign属性可以设置文本的对齐方式,示例代码如下:

@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {Row() {Column() {Text('HarmonyOS').width(200).backgroundColor(Color.Yellow).textAlign(TextAlign.Start)Text('HarmonyOS').fontColor(Color.Red).fontSize(22).fontStyle(FontStyle.Italic).fontWeight(FontWeight.Bold).fontFamily('Arial').width(200).margin({ top: 12 }).backgroundColor(Color.Yellow).textAlign(TextAlign.Center)Text('HarmonyOS').fontColor(Color.Green).fontSize(26).fontStyle(FontStyle.Normal).fontWeight(700).fontFamily('sans-serif').width(200).margin({ top: 12 }).backgroundColor(Color.Yellow).textAlign(TextAlign.End)}.width('100%')}.height('100%')}
}

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

  • Start(默认值):水平对齐首部。

  • Center:水平居中对齐。

  • End:水平对齐尾部。

3、设置文本超长显示

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

@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {Row() {Column() {Text('This is the text content of Text Component This is the text content of Text Component')Blank(10)Text('This is the text content of Text Component This is the text content of Text Component').fontSize(16).maxLines(1).textOverflow({ overflow: TextOverflow.Ellipsis }).backgroundColor(0xE6F2EE)}.width('100%')}.height('100%')}
}

效果图如下:

4、设置文本装饰线

        使用decoration设置文本装饰线样式及其颜色,大家在浏览网页的时候经常可以看到装饰线,例如带有下划线超链接文本。

        decoration包含type和color两个参数,其中type用于设置装饰线样式,参数类型为TextDecorationTyp,color为可选参数。

下面的示例代码给文本设置了下划线,下划线颜色为黑色:

@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {Row() {Column() {Text('HarmonyOS').fontSize(20).decoration({ type: TextDecorationType.Underline, color: Color.Black }).backgroundColor(Color.Gray)}.width('100%')}.height('100%')}
}

效果图如下:

TextDecorationTyp包含以下几种类型:

  • None:不使用文本装饰线。
    .decoration({ type: TextDecorationType.None, color: Color.Red })
  • Overline:文字上划线修饰。
.decoration({ type: TextDecorationType.Overline, color: Color.Red })

  • LineThrough:穿过文本的修饰线。
.decoration({ type: TextDecorationType.LineThrough, color: Color.Red })

  • Underline:文字下划线修饰。
.decoration({ type: TextDecorationType.Underline, color: Color.Red })

相关文章:

  • 多人聊天Java
  • OTSU算法及其Python实现
  • python单引号怎么打,两种输入方法
  • 高德地图海量点标记图片(智慧交通道路事件情况)
  • 推荐10款App安全测试工具
  • [Firefly-Linux] RK3568 pca9555芯片驱动详解
  • AI跨界学习,不再是梦!
  • 宝塔是可以切换mongodb版本的
  • 用23种设计模式打造一个cocos creator的游戏框架----(四)装饰器模式
  • 用C语言实现链栈的基本操作
  • Day03 linux高级系统编程--进程
  • 电气火灾监控系统
  • 正则表达式(5):常用符号
  • 51单片机程序
  • 10_企业架构NOSQL数据库之MongoDB
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【5+】跨webview多页面 触发事件(二)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【个人向】《HTTP图解》阅后小结
  • css布局,左右固定中间自适应实现
  • IP路由与转发
  • Java精华积累:初学者都应该搞懂的问题
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • linux安装openssl、swoole等扩展的具体步骤
  • Redis学习笔记 - pipline(流水线、管道)
  • redis学习笔记(三):列表、集合、有序集合
  • SQLServer之创建数据库快照
  • 初识MongoDB分片
  • 关于Java中分层中遇到的一些问题
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 前端js -- this指向总结。
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​【已解决】npm install​卡主不动的情况
  • ​2020 年大前端技术趋势解读
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (C#)一个最简单的链表类
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (实战篇)如何缓存数据
  • (转)重识new
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net Stream篇(六)
  • .NET 服务 ServiceController
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET企业级应用架构设计系列之技术选型
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .Net下的签名与混淆
  • @AutoConfigurationPackage的使用
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • [20190401]关于semtimedop函数调用.txt