Skip to content

可折叠文本ExpandableText ​

一、效果总览 ​

二、描述 ​

可折叠/展开的文本框,支持自定义文本样式

三、构造函数及参数说明 ​

text
OmniExpandableText({
  isFold: boolean,
  content: string,
  maxLine: number,
  contentFontColor: ResourceColor,
  contentFontSize: string | number | Resource,
  expandFontColor: ResourceColor,
  expandFontSize: string | number | Resource,
  foldText: ResourceStr,
  expandText: ResourceStr
  })
参数名类型必填说明
isFoldboolean否是否折叠文本,默认为true
contentstring否文本内容
maxLinenumber否折叠后展示的最大行数
contentFontColorResourceColor否文本字体颜色,默认为#43474D
contentFontSizestring | number | Resource否文本字体大小,默认为14fp
expandFontColorResourceColor否右下角'展开'文本的字体颜色,默认为#517A99
expandFontSizestring | number | Resource否右下角'展开'文本的字体大小,默认为14fp
foldTextResourceStr否收起文案
expandTextResourceStr否展开文案

四、代码演示 ​

示例一:默认效果 ​

text
@Entry
@Component
struct ExpandableTextExample {
  @State content: string =
    '这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容' +
      '这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容' +
      '这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容' +
      '这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容'

  build() {
    NavDestination() {
      Column({ space: 10 }) {
        Text('示例一:默认样式')
            .fontSize(20)
            .fontWeight(FontWeight.Bold)
            .fontColor(0x333333)
            .padding({
              top: 20,
              bottom: 20,
              right: 20,
              left: 20
            })
            .width('100%')
          OmniExpandableText({
            content: this.content,
            maxLine: 5,
          }).margin(
            {
              left: 20,
              right: 20,
              bottom: 20
            }
          )
      }
      .alignItems(HorizontalAlign.Center)
      .width('100%')
    }
    .title('ExpandableText示例')
  }
}

示例二:自定义样式 ​

text
@Entry
@Component
struct ExpandableTextExample {
  @State content: string =
    '这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容' +
      '这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容' +
      '这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容' +
      '这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容这是正文内容'

  build() {
    NavDestination() {
      Column({ space: 10 }) {
        Text('示例二:自定义样式')
            .fontSize(20)
            .fontWeight(FontWeight.Bold)
            .fontColor(0x333333)
            .padding({
              top: 20,
              bottom: 20,
              right: 20,
              left: 20
            })
            .width('100%')
          OmniExpandableText({
            content: this.content,
            maxLine: 6,
            contentFontColor: 0x333333,
            expandFontColor: 0xec623e
          })
            .margin({
              top: 20,
              bottom: 20,
              right: 20,
              left: 20
            })
      }
      .alignItems(HorizontalAlign.Center)
      .width('100%')
    }
    .title('ExpandableText示例')
  }
}