arkui-text文本(第二期)

作者:犯困乐 发布时间: 2026-05-07 阅读量:22 评论数:0

自定义文本样式

ps:必须配合 maxLines 使用,用来控制文本超出容器范围时的显示方式

写法

.textOverflow({overflow:TextOverflow.None})

TextOverflow.None

效果

不做任何溢出处理,文本会直接撑破容器(默认会自动换行,仅单行 / 限制行数时生效)

场景

不限制行数、允许文本完整展示的场景

TextOverflow.Clip

效果

直接截断超出的文本,不显示任何省略标记

场景

列表项、空间紧张且不需要提示省略的场景

TextOverflow.Ellipsis

效果

文本超出时,在末尾添加省略号 ... 表示截断

场景

标题、列表项等需要提示 “文本未完全显示” 的场景

TextOverflow.MARQUEE

效果

文本以滚动跑马灯的形式循环显示,超出部分会水平滚动

场景

单行文本、空间不足但需要完整展示内容的场景(如通知栏、状态栏)

实操应用

热搜列表

代码

@Entry
@Component
struct HotPage {
  build() {
    Column() {
      Text('热搜榜单')
        .fontSize(24)
        .fontWeight(FontWeight.Bold)
        .fontColor('#333333')
        .padding({ left: 16, right: 16, top: 16, bottom: 12 })
        .width('100%')

      Column() {
        Row() {
          Text('1')
            .fontSize(18)
            .fontWeight(FontWeight.Bold)
            .fontColor('#ff4757')
            .width(32)
            .textAlign(TextAlign.Center)
          Text('五一假期国内人员跨区域流动规模再创历史新高出行热度爆棚')
            .width('35%')
            .fontSize(16)
            .fontColor('#333333')
            .fontWeight(FontWeight.Medium)
            .textOverflow({ overflow: TextOverflow.Ellipsis })
            .maxLines(1)
            .flexGrow(1)
            .margin({ left: 12 })
          Text('热')
            .fontSize(10)
            .fontColor('#ffffff')
            .backgroundColor('#ff4757')
            .borderRadius(4)
            .padding({ left: 4, right: 4, top: 2, bottom: 2 })
            .margin({ right: 16 })
          Text('98.6w')
            .fontSize(12)
            .fontColor('#999999')
            .margin({ right: 16 })
        }
        .width('100%')
        .padding({ top: 14, bottom: 14 })
        Divider().color('#f0f0f0').height(0.5)

        Row() {
          Text('2')
            .fontSize(18)
            .fontWeight(FontWeight.Bold)
            .fontColor('#ff4757')
            .width(32)
            .textAlign(TextAlign.Center)
          Text('国家医保局出台新政策全力推动分娩相关费用实现个人零自付')
            .fontSize(16)
            .fontColor('#333333')
            .fontWeight(FontWeight.Medium)
            .textOverflow({ overflow: TextOverflow.MARQUEE })
            .maxLines(1)
            .flexGrow(1)
            .margin({ left: 12 })
            .width('35%')
          Text('热')
            .fontSize(10)
            .fontColor('#ffffff')
            .backgroundColor('#ff4757')
            .borderRadius(4)
            .padding({ left: 4, right: 4, top: 2, bottom: 2 })
            .margin({ left:10,right: 16 })
          Text('87.7w')
            .fontSize(12)
            .fontColor('#999999')
            .margin({ right: 16 })
        }
        .width('100%')
        .padding({ top: 14, bottom: 14 })
        Divider().color('#f0f0f0').height(0.5)

        Row() {
          Text('3')
            .fontSize(18)
            .fontWeight(FontWeight.Bold)
            .fontColor('#ff4757')
            .width(32)
            .textAlign(TextAlign.Center)
          Text('520 寓意浪漫好日子全国多地结婚登记开放预约瞬间全部约满')
            .fontSize(16)
            .fontColor('#333333')
            .fontWeight(FontWeight.Medium)
            .textOverflow({ overflow: TextOverflow.Ellipsis })
            .maxLines(1)
            .flexGrow(1)
            .margin({ left: 12 })
            .width('35%')
          Text('热')
            .fontSize(10)
            .fontColor('#ffffff')
            .backgroundColor('#ff4757')
            .borderRadius(4)
            .padding({ left: 4, right: 4, top: 2, bottom: 2 })
            .margin({ right: 16 })
          Text('76.5w')
            .fontSize(12)
            .fontColor('#999999')
            .margin({ right: 16 })
        }
        .width('100%')
        .padding({ top: 14, bottom: 14 })
        Divider().color('#f0f0f0').height(0.5)

        Row() {
          Text('4')
            .fontSize(18)
            .fontWeight(FontWeight.Bold)
            .fontColor('#999999')
            .width(32)
            .textAlign(TextAlign.Center)
          Text('胖东来内部管理大整顿十九名中高层管理人员被集体降级处理')
            .width('35%')
            .fontSize(16)
            .fontColor('#333333')
            .fontWeight(FontWeight.Medium)
            .textOverflow({ overflow: TextOverflow.MARQUEE })
            .maxLines(1)
            .flexGrow(1)
            .margin({ left: 12,right:12 })
          Text('65.4w')
            .fontSize(12)
            .fontColor('#999999')
            .margin({ right: 16 })
        }
        .width('100%')
        .padding({ top: 14, bottom: 14 })
        Divider().color('#f0f0f0').height(0.5)

        Row() {
          Text('5')
            .fontSize(18)
            .fontWeight(FontWeight.Bold)
            .fontColor('#999999')
            .width(32)
            .textAlign(TextAlign.Center)
          Text('全国多地迎来冷暖空气交汇气温骤降开启断崖式降温模式')
            .width('35%')
            .fontSize(16)
            .fontColor('#333333')
            .fontWeight(FontWeight.Medium)
            .textOverflow({ overflow: TextOverflow.None })
            .maxLines(1)
            .flexGrow(1)
            .margin({ left: 12 })
          Text('54.3w')
            .fontSize(12)
            .fontColor('#999999')
            .margin({ right: 16 })
        }
        .width('100%')
        .padding({ top: 14, bottom: 14 })
        Divider().color('#f0f0f0').height(0.5)

        Row() {
          Text('6')
            .fontSize(18)
            .fontWeight(FontWeight.Bold)
            .fontColor('#999999')
            .width(32)
            .textAlign(TextAlign.Center)
          Text('当下年轻人就业观念发生重大转变更偏爱体制内稳定工作岗位')
            .fontSize(16)
            .fontColor('#333333')
            .fontWeight(FontWeight.Medium)
            .textOverflow({ overflow: TextOverflow.MARQUEE })
            .maxLines(1)
            .flexGrow(1)
            .margin({ left: 12,right:12 })
            .width('35%')
          Text('43.2w')
            .fontSize(12)
            .fontColor('#999999')
            .margin({ right: 16 })
        }
        .width('100%')
        .padding({ top: 14, bottom: 14 })
        Divider().color('#f0f0f0').height(0.5)
      }
      .width('100%')
      .backgroundColor('#ffffff')
    }
    .width('100%')
    .height('100%')
    .backgroundColor('#f5f5f5')
  }
}

效果

评论