第九节HarmonyOS 常用基础组件7-RichText

1、描述

富文本组件,解析并显示HTML格式文本。

富文本(RichText)是一种特殊的文本格式,它比普通文本更加丰富多彩。富文本可以包含各种字体、颜色、大小、图像、链接、表格、视频等元素,使文本更加生动、有趣。

2、接口

RichText(content:string)

3、参数

content - string - 必填 - 表示HTML格式的字符串。

4、事件

名称

描述

onStart(callback:() => void)

加载网页时触发。

onComplete(callback:() => void)

网页加载完成后触发。

5、属性

暂时只支持通用的四大属性:width、height、size、layoutWeight。由于padding、margin、constraintSize属性使用时与通用属性描述不符,暂不支持。

6、富文本支持解析的标签

名称

描述

<h1> --<h6>

标题从1-6

<p></p>

定义段落

<br/>

插入一个简单的换行

<font/>

规定文本字体样式

<hr/>

定义一条水平线

<image><image/>

定义图片

<div></div>

用于组合块级元素,里面包含其它标签

<i></i>

定义为斜体文本

<u></u>

带有下划线的文本

<style></style>

定义html文档的样式信息

style

属性规定元素的行内样式,写在标签内部,在使用的时候需用引号来进行区分,并以; 间隔样式,style=‘width: 500px;height: 500px;border: 1px soild;margin: 0 auto;‘。

<script></script>

定义客户端脚本

7、富文本使用场景

RichText组件底层复用了Web组件来提供基础能力,包括但不限于HTML页面的解析、渲染等。

但由于Web组件比较消耗资源,所以在一些重复使用RichText组件的场景下,比如在List下循环重复使用RichText时,会出现卡顿、滑动响应慢等现象。

8、实例

import router from '@ohos.router';

@Entry
@Component
struct RichTextPage {
  @State message: string = '富文本组件,解析并显示HTML格式文本。'
  @State richText: string = '<h1 style="text-align: center;">h1标题</h1>' +
    '<h1 style="text-align: center;"><i>h1斜体</i></h1>' +
    '<h1 style="text-align: center;"><u>h1下划线</u></h1>' +
    '<h2 style="text-align: center;">h2标题</h2>' +
    '<h3 style="text-align: center;">h3标题</h3>' +
    '<p style="text-align: center;">p常规</p><hr/>' +
    '<p style="font-size: 35px;text-align: center;font-weight: bold; color: rgb(24,78,228)">字体大小35px,行高45px</p>' +
    '<p style="background-color: #e5e5e5;line-height: 45px;font-size: 35px;text-indent: 2em;"></p>' +
    '<p>这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字这是一段文字</p>' +
    '<div style="width: 500px;height: 500px;border: 1px solid;margin: 0 auto;"/>';

  build() {
    Row() {
      Scroll() {
        Column() {
          Text(this.message)
            .fontSize(20)
            .fontWeight(FontWeight.Bold)
            .width('96%')
          Blank(12)
          RichText(this.richText)
            .width('96%')
            .height(500)

          Blank(12)
          Button("Progress文本文档")
            .fontSize(20)
            .backgroundColor('#007DFF')
            .width('96%')
            .onClick(() => {
              // 处理点击事件逻辑
              router.pushUrl({
                url: "pages/baseComponent/richText/RichTextDesc",
              })
            })

        }
        .width('100%')
      }
    }
    .padding({ top: 12, bottom: 12 })
  }
}

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyxhzdm

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值