RichText
富文本組件,解析并顯示HTML格式文本。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點(diǎn)擊或者復(fù)制轉(zhuǎn)到。
子組件
不包含子組件。
接口
RichText(content:string)
參數(shù)名 | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
content | string | 是 | 表示HTML格式的字符串。 |
事件
名稱 | 描述 |
---|---|
onStart(callback: () => void) | 加載網(wǎng)頁時觸發(fā)。 |
onComplete(callback: () => void) | 網(wǎng)頁加載結(jié)束時觸發(fā)。 |
屬性
只支持[通用屬性]中width,height,size,layoutWeight四個屬性。由于padding,margin,constraintSize屬性使用時與通用屬性描述不符,暫不支持。
支持標(biāo)簽
名稱 | 描述 | 示例 |
---|---|---|
-- | 被用來定義HTML,定義重要等級最高的標(biāo)題,定義重要等級最低的標(biāo)題。 | 這是一個標(biāo)題這是h2標(biāo)題 |
定義段落。 | 這是一個段落 | |
插入一個簡單的換行符。 | 這是一個段落這是換行段落 | |
規(guī)定文本的字體、字體尺寸、字體顏色。在標(biāo)簽中font size能夠設(shè)置的值只有1到7的數(shù)字,默認(rèn)值是3,由于標(biāo)簽在HTML 4.01中不建議使用,在XHTML1.0 Strict DTD中不支持,所以不建議使用此標(biāo)簽,請使用CSS代替。CSS語法: | 這是一段紅色字體。 | |
定義HTML頁面中的主題變化(比如話題的轉(zhuǎn)移),并顯示為一條水平線。 | 這個一個段落這是一個段落 | |
用來定義圖片。 | ||
常用于組合塊級元素,以便通過CSS來對這些元素進(jìn)行格式化。 | 這是一個在div元素中的標(biāo)題。 | |
定義與文本中其余部分不同的部分,并把這部分文本呈現(xiàn)為斜體文本。 | 這是一個斜體 | |
定義與常規(guī)文本風(fēng)格不同的文本,像拼寫錯誤的單詞或者漢語中的專有名詞,應(yīng)盡量避免使用為文本加下劃線,用戶會把它混淆為一個超鏈接。 | 這是帶有下劃線的段落 | |
定義HTML文檔的樣式信息。 | h1{color:red;}p{color:blue;} | |
style | 屬性規(guī)定元素的行內(nèi)樣式,寫在標(biāo)簽內(nèi)部,在使用的時候需用引號來進(jìn)行區(qū)分,并以; 間隔樣式,style='width: 500px;height: 500px;border: 1px soild;margin: 0 auto;'。(Android不支持style標(biāo)簽中的color屬性的十六進(jìn)制類型) | 這是一個標(biāo)題這是一個段落。 |
用于定義客戶端腳本,比如JavaScript。 | document.write("Hello World!")HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
使用場景
RichText組件底層復(fù)用了Web組件來提供基礎(chǔ)能力,包括但不限于HTML頁面的解析、渲染等。但由于Web組件比較消耗資源,所以在一些重復(fù)使用RichText組件的場景下,比如在List下循環(huán)重復(fù)使用RichText時,會出現(xiàn)卡頓、滑動響應(yīng)慢等現(xiàn)象。
RichText使用Web提供基礎(chǔ)能力,同樣遵循Web約束條件。常見典型場景如下:
移動設(shè)備的視口默認(rèn)值大小為980px,默認(rèn)值可以確保大部分網(wǎng)頁在移動設(shè)備下可以正常瀏覽。如果RichText組件寬度低于這個值,content內(nèi)部的HTML則可能會生產(chǎn)一個可以滑動的頁面被RichText組件包裹。如果想替換默認(rèn)值,可以在content中添加以下標(biāo)簽:
< meta name="viewport" content="width=device-width" >
示例
示例效果請以真機(jī)運(yùn)行為準(zhǔn),當(dāng)前IDE預(yù)覽器不支持。
// xxx.ets
@Entry
@Component
struct RichTextExample {
@State data: string = '< h1 style="text-align: center;" >h1標(biāo)題< /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標(biāo)題< /h2 >' +
'< h3 style="text-align: center;" >h3標(biāo)題< /h3 >' +
'< p style="text-align: center;" >p常規(guī)< /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 >';
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center }) {
RichText(this.data)
.onStart(() = > {
console.info('RichText onStart');
})
.onComplete(() = > {
console.info('RichText onComplete');
})
.width(500)
.height(500)
.backgroundColor(0XBDDB69)
RichText('layoutWeight(1)')
.onStart(() = > {
console.info('RichText onStart');
})
.onComplete(() = > {
console.info('RichText onComplete');
})
.size({ width: '100%', height: 110 })
.backgroundColor(0X92D6CC)
RichText('layoutWeight(2)')
.onStart(() = > {
console.info('RichText onStart');
})
.onComplete(() = > {
console.info('RichText onComplete');
})
.size({ width: '100%', height: 110 })
.backgroundColor(0X92C48D)
}
}
}
-
HTML
+關(guān)注
關(guān)注
0文章
278瀏覽量
35205 -
組件
+關(guān)注
關(guān)注
1文章
512瀏覽量
17813 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42805
發(fā)布評論請先 登錄
相關(guān)推薦
評論