富文本組件

2024-01-22 17:24 更新

富文本組件,解析并顯示HTML格式文本。

說(shuō)明
  • 該組件從API Version 8開(kāi)始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
  • 該組件無(wú)法根據(jù)內(nèi)容自適應(yīng)設(shè)置寬高屬性,需要開(kāi)發(fā)者設(shè)置顯示布局。

子組件

不包含子組件。

接口

RichText(content:string)

參數(shù):

參數(shù)名

參數(shù)類型

必填

參數(shù)描述

content

string

表示HTML格式的字符串。

事件

名稱

描述

onStart(callback: () => void)

加載網(wǎng)頁(yè)時(shí)觸發(fā)。

onComplete(callback: () => void)

網(wǎng)頁(yè)加載結(jié)束時(shí)觸發(fā)。

屬性

只支持通用屬性中width,height,size,layoutWeight四個(gè)屬性。由于padding,margin,constraintSize屬性使用時(shí)與通用屬性描述不符,暫不支持。

支持標(biāo)簽

名稱

描述

示例

<h1>--<h6>

被用來(lái)定義HTML,<h1>定義重要等級(jí)最高的標(biāo)題,<h6>定義重要等級(jí)最低的標(biāo)題。

<h1>這是一個(gè)標(biāo)題</h1><h2>這是h2標(biāo)題</h2>

<p></p>

定義段落。

<p>這是一個(gè)段落</p>

<br/>

插入一個(gè)簡(jiǎn)單的換行符。

<p>這是一個(gè)段落<br/>這是換行段落</p>

<font/>

規(guī)定文本的字體、字體尺寸、字體顏色。

<font size="3" face="arial" color="red">這是一段紅色字體。</font>

<hr/>

定義HTML頁(yè)面中的主題變化(比如話題的轉(zhuǎn)移),并顯示為一條水平線。

<p>這個(gè)一個(gè)段落</p><hr/><p>這是一個(gè)段落</p>

<image></image>

用來(lái)定義圖片。

<image src="file:///data/storage/el1/bundle/entry/resources/rawfile/icon.png"></image>

<div></div>

常用于組合塊級(jí)元素,以便通過(guò)CSS來(lái)對(duì)這些元素進(jìn)行格式化。

<div style='color:#0000FF'><h3>這是一個(gè)在div元素中的標(biāo)題。</h3></div>

<i></i>

定義與文本中其余部分不同的部分,并把這部分文本呈現(xiàn)為斜體文本。

<i>這是一個(gè)斜體</i>

<u></u>

定義與常規(guī)文本風(fēng)格不同的文本,像拼寫(xiě)錯(cuò)誤的單詞或者漢語(yǔ)中的專有名詞,應(yīng)盡量避免使用<u>為文本加下劃線,用戶會(huì)把它混淆為一個(gè)超鏈接。

<p><u>這是帶有下劃線的段落</u></p>

<style></style>

定義HTML文檔的樣式信息。

<style>h1{color:red;}p{color:blue;}</style>

style

屬性規(guī)定元素的行內(nèi)樣式,寫(xiě)在標(biāo)簽內(nèi)部,在使用的時(shí)候需用引號(hào)來(lái)進(jìn)行區(qū)分,并以; 間隔樣式,style='width: 500px;height: 500px;border: 1px soild;margin: 0 auto;'。

<h1 style='color:blue;text-align:center'>這是一個(gè)標(biāo)題</h1><p style='color:green'>這是一個(gè)段落。</p>

<script></script>

用于定義客戶端腳本,比如JavaScript。

<script>document.write("Hello World!")</script>

示例

示例效果請(qǐng)以真機(jī)運(yùn)行為準(zhǔn),當(dāng)前IDE預(yù)覽器不支持。

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct RichTextExample {
  5. @State data: string = '<h1 style="text-align: center;">h1標(biāo)題</h1>' +
  6. '<h1 style="text-align: center;"><i>h1斜體</i></h1>' +
  7. '<h1 style="text-align: center;"><u>h1下劃線</u></h1>' +
  8. '<h2 style="text-align: center;">h2標(biāo)題</h2>' +
  9. '<h3 style="text-align: center;">h3標(biāo)題</h3>' +
  10. '<p style="text-align: center;">p常規(guī)</p><hr/>' +
  11. '<div style="width: 500px;height: 500px;border: 1px solid;margin: 0auto;">' +
  12. '<p style="font-size: 35px;text-align: center;font-weight: bold; color: rgb(24,78,228)">字體大小35px,行高45px</p>' +
  13. '<p style="background-color: #e5e5e5;line-height: 45px;font-size: 35px;text-indent: 2em;">' +
  14. '<p>這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字</p>';
  15. build() {
  16. Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center,
  17. justifyContent: FlexAlign.Center }) {
  18. RichText(this.data)
  19. .onStart(() => {
  20. console.info('RichText onStart');
  21. })
  22. .onComplete(() => {
  23. console.info('RichText onComplete');
  24. })
  25. .width(500)
  26. .height(400)
  27. .backgroundColor(0XBDDB69)
  28. RichText('layoutWeight(1)')
  29. .onStart(() => {
  30. console.info('RichText onStart');
  31. })
  32. .onComplete(() => {
  33. console.info('RichText onComplete');
  34. })
  35. .size({ width: '100%', height: 110 })
  36. .backgroundColor(0X92D6CC)
  37. .layoutWeight(1)
  38. RichText('layoutWeight(2)')
  39. .onStart(() => {
  40. console.info('RichText onStart');
  41. })
  42. .onComplete(() => {
  43. console.info('RichText onComplete');
  44. })
  45. .size({ width: '100%', height: 110 })
  46. .backgroundColor(0X92C48D)
  47. .layoutWeight(2)
  48. }
  49. }
  50. }

使用場(chǎng)景說(shuō)明

RichText組件底層復(fù)用了Web組件來(lái)提供基礎(chǔ)能力,包括但不限于HTML頁(yè)面的解析、渲染等。但由于Web組件比較消耗資源,所以在一些重復(fù)使用RichText組件的場(chǎng)景下,比如在List下循環(huán)重復(fù)使用RichText時(shí),會(huì)出現(xiàn)卡頓、滑動(dòng)響應(yīng)慢等現(xiàn)象。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)