33、鸿蒙/组件/文本显示 (Text/Span)

Text是文本组件,通常用于展示用户视图,如显示文章的文字。具体用法请参考Text

创建文本

  • string字符串
 Text('string文本')
  • 引用Resource资源
    资源引用类型可以通过$r创建Resource类型对象,文件位置为/resources/base/element/string.json;/resources/zh_CN/element/string.json 语言包里可重写上面json文件
 Text($r('app.string.module_desc'))

添加子组件

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

  • 创建Span。
    Span组件需要写到Text组件内,单独写Span组件不会显示信息,Text与Span同时配置文本内容时,Span内容覆盖Text内容。
Text('不会显示的文本'){
        Span("文本")
}.backgroundColor(Color.Red)
  • 设置文本装饰线及颜色。
    通过decoration设置文本装饰线及颜色。
Text(){
        Span('span1').decoration({
          type: TextDecorationType.LineThrough, // 删除线
          color: Color.Red
        })
}
Text(){
        Span('span1').decoration({
          type: TextDecorationType.Underline, // 下划线
          color: Color.Red
        })
}
Text(){
        Span('span1').decoration({
          type: TextDecorationType.Overline, // 上划线
          color: Color.Red
        })
}
  • 通过textCase设置文字一直保持大写或者小写状态。
Text(){
        Span("i am SM").textCase(TextCase.LowerCase) // 小写
}
Text(){
        Span("i am SM").textCase(TextCase.UpperCase) // 大写
}
  • 添加事件。
    由于Span组件无尺寸信息,事件仅支持添加点击事件onClick。
 Text(){
        Span('点击').onClick(()=>{
          console.log('点击');
        })
}

自定义文本样式

  • 通过textAlign属性设置文本对齐样式。
Text('左对齐').textAlign(TextAlign.Start).width(300).backgroundColor(Color.Red)
Text('居中对齐').textAlign(TextAlign.Center).width(300).backgroundColor(Color.Red)
Text('靠右对齐').textAlign(TextAlign.End).width(300).backgroundColor(Color.Red)
  • 通过textOverflow属性控制文本超长处理,textOverflow需配合maxLines一起使用(默认情况下文本自动折行)。
 Text('sdafasdfasdfasdfasdfasdfasdfasdfasdfasfdasdfsdafasdfasdfasdfasdfasdfasdfasdfasdfasfdasdfsdafasdfasdfasdfasdfasdfasdfasdfasdfasfdasdf')
.textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(2)
  • 通过lineHeight属性设置文本行高。
Text('sdafasdfasdfasdfasdfasdfasdfasdfasdfasfdasdfsdafasdfasdfasdfasdfasdfasdfasdfasdfasfdasdfsdafasdfasdfasdfasdfasdfasdfasdfasdfasfdasdf')
.textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(2)
.lineHeight(30)
  • 通过decoration属性设置文本装饰线样式及其颜色。
Text('删除线').decoration({
        type: TextDecorationType.LineThrough,
        color: Color.Red
})
Text('下划线').decoration({
        type: TextDecorationType.Underline,
        color: Color.Red
})
Text('上划线').decoration({
        type: TextDecorationType.Overline,
        color: Color.Red
})
  • 通过baselineOffset属性设置文本基线的偏移量。
Text('This is the text content with baselineOffset 0.')
        .baselineOffset(-10)
        .fontSize(12)
        .border({ width: 1 })
        .padding(10)
        .width('100%')
        .margin(5)
  • 通过letterSpacing属性设置文本字符间距。
 Text('sadfasdfaasdfas')
        .letterSpacing(10)
  • 通过copyOption属性设置文本是否可复制粘贴。
Text('sadfasdfaasdfas')
        .letterSpacing(10)
        .copyOption(CopyOptions.InApp)

-- 添加事件

Text('sadfasdfaasdfas')
        .letterSpacing(10)
        .copyOption(CopyOptions.InApp)
        .onClick((e)=>{
          console.log('被点击');
})
  • 添加边框
Text('添加边框')
        .border({
          width: 2,
          color: Color.Red,
          style: BorderStyle.Dotted
})
Text('添加左右边框')
        .border({
          width: {
            left: 1,
            right: 2
          },
          color:{
            left:  Color.Red,
            right:  Color.Blue
          },
          style: {
            left: BorderStyle.Dotted,
            right: BorderStyle.Solid
          }
})
  • 设置圆角
 Text('圆角').border({
        color: Color.Red,
        style: BorderStyle.Solid,
        width: 1
}).width(100).textAlign(TextAlign.Center)
        .borderRadius(20)

Text('圆角').border({
        color: Color.Red,
        style: BorderStyle.Solid,
        width: 1
}).width(100).textAlign(TextAlign.Center)
        .borderRadius({
          topLeft: 10,
          bottomRight: 10
})

Text("圆形")
        .width(100).height(100)
        .border({
          color: Color.Red,
          style: BorderStyle.Solid,
          width: 1
}).textAlign(TextAlign.Center)
        .borderRadius(50)
  • 背景图
 Text('背景图')
        .width(100).height(100)
        .backgroundColor(Color.Red)
        .backgroundImage($r('app.media.app_icon'), ImageRepeat.NoRepeat)
        .backgroundImagePosition({
          x: 10,
          y: 20
})
// .backgroundImagePosition(Alignment.Center) // 居中
.backgroundImageSize(ImageSize.Contain)
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容