Text
顯示一段文本的組件。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
該組件從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨標(biāo)記該內(nèi)容的起始版本。
子組件
可以包含[Span]和[ImageSpan]子組件。
接口
Text(content?: string | Resource)
從API version 9開始,該接口支持在ArkTS卡片中使用。
參數(shù)名 | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
content | string | [Resource] | 否 |
屬性
除支持[通用屬性]和[文本通用屬性]外,還支持以下屬性:
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
textAlign | [TextAlign] | 設(shè)置文本段落在水平方向的對齊方式。 默認(rèn)值:TextAlign.Start 說明: 文本段落寬度占滿Text組件寬度;可通過[align]屬性控制文本段落在垂直方向上的位置,此組件中不可通過align屬性控制文本段落在水平方向上的位置,即align屬性中Alignment.TopStart、Alignment.Top、Alignment.TopEnd效果相同,控制內(nèi)容在頂部,Alignment.Start、Alignment.Center、Alignment.End效果相同,控制內(nèi)容垂直居中,Alignment.BottomStart、Alignment.Bottom、Alignment.BottomEnd效果相同,控制內(nèi)容在底部。結(jié)合TextAlign屬性可控制內(nèi)容在水平方向的位置。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
textOverflow | {overflow: [TextOverflow]} | 設(shè)置文本超長時的顯示方式。 默認(rèn)值:{overflow: TextOverflow.Clip}**說明:**文本截斷是按字截斷。例如,英文以單詞為最小單位進(jìn)行截斷,若需要以字母為單位進(jìn)行截斷,可在字母間添加零寬空格:u200B。 當(dāng)overflow 設(shè)置為TextOverflow.None、TextOverflow.Clip、TextOverflow.Ellipsis時,需配合maxLines 使用,單獨設(shè)置不生效。設(shè)置TextOverflow.None與TextOverflow.Clip效果一樣。當(dāng)overflow 設(shè)置為TextOverflow.Marquee時,文本在一行內(nèi)滾動顯示,設(shè)置maxLines 及copyOption 屬性均不生效。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
maxLines | number | 設(shè)置文本的最大行數(shù)。 默認(rèn)值:Infinity**說明:**默認(rèn)情況下,文本是自動折行的,如果指定此參數(shù),則文本最多不會超過指定的行。如果有多余的文本,可以通過textOverflow 來指定截斷方式。 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
lineHeight | string | number |
decoration | { type: [TextDecorationType], color?: [ResourceColor] } | 設(shè)置文本裝飾線樣式及其顏色。 默認(rèn)值:{ type: TextDecorationType.None, color:Color.Black } 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
baselineOffset | number | string |
letterSpacing | number | string |
minFontSize | number | string |
maxFontSize | number | string |
textCase | [TextCase] | 設(shè)置文本大小寫。 默認(rèn)值:TextCase.Normal 從API version 9開始,該接口支持在ArkTS卡片中使用。 |
copyOption9+ | [CopyOptions] | 組件支持設(shè)置文本是否可復(fù)制粘貼。 默認(rèn)值:CopyOptions.None 該接口支持在ArkTS卡片中使用。**說明:**設(shè)置copyOptions為CopyOptions.InApp或者CopyOptions.LocalDevice,長按文本,會彈出文本選擇菜單,可選中文本并進(jìn)行復(fù)制、全選操作。 |
textShadow10+ | [ShadowOptions] | 設(shè)置文字陰影效果。 |
heightAdaptivePolicy10+ | [TextHeightAdaptivePolicy] | 設(shè)置文本自適應(yīng)高度的方式。 默認(rèn)值:TextHeightAdaptivePolicy.MAX_LINES_FIRST。**說明:**當(dāng)設(shè)置為TextHeightAdaptivePolicy.MAX_LINES_FIRST時,優(yōu)先使用maxLines 屬性來調(diào)整文本高度。如果使用maxLines 屬性的布局大小超過了布局約束,則嘗試在minFontSize 和maxFontSize 的范圍內(nèi)縮小字體以顯示更多文本。 當(dāng)設(shè)置為TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST時,優(yōu)先使用minFontSize 屬性來調(diào)整文本高度。如果使用minFontSize 屬性可以將文本布局在一行中,則嘗試在minFontSize 和maxFontSize 的范圍內(nèi)增大字體并使用最大可能的字體大小。 當(dāng)設(shè)置為TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST時,優(yōu)先使用布局約束來調(diào)整文本高度。如果布局大小超過布局約束,則嘗試在minFontSize 和maxFontSize 的范圍內(nèi)縮小字體以滿足布局約束。如果將字體大小縮小到minFontSize 后,布局大小仍然超過布局約束,則刪除超過布局約束的行。 |
textIndent10+ | number | string |
font10+ | [Font] | 設(shè)置文本樣式。包括字體大小、字體粗細(xì)、字體族和字體風(fēng)格。 |
說明:
HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
不支持Text內(nèi)同時存在文本內(nèi)容和Span或ImageSpan子組件。如果同時存在,只顯示Span或ImageSpan內(nèi)的內(nèi)容。
通用屬性中形狀裁剪[clip]屬性,在Text默認(rèn)值為true。
事件
支持[通用事件]
示例
示例1
// xxx.ets
@Entry
@Component
struct TextExample1 {
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
// 文本水平方向?qū)R方式設(shè)置
// 單行文本
Text('textAlign').fontSize(9).fontColor(0xCCCCCC)
Text('TextAlign set to Center.')
.textAlign(TextAlign.Center)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('TextAlign set to Start.')
.textAlign(TextAlign.Start)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('TextAlign set to End.')
.textAlign(TextAlign.End)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
// 多行文本
Text('This is the text content with textAlign set to Center.')
.textAlign(TextAlign.Center)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('This is the text content with textAlign set to Start.')
.textAlign(TextAlign.Start)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('This is the text content with textAlign set to End.')
.textAlign(TextAlign.End)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
// 文本超長時顯示方式
Text('TextOverflow+maxLines').fontSize(9).fontColor(0xCCCCCC)
// 超出maxLines截斷內(nèi)容展示
Text('This is the setting of textOverflow to Clip text content This is the setting of textOverflow to None text content. This is the setting of textOverflow to Clip text content This is the setting of textOverflow to None text content.')
.textOverflow({ overflow: TextOverflow.Clip })
.maxLines(1)
.fontSize(12)
.border({ width: 1 })
.padding(10)
// 超出maxLines展示省略號
Text('This is set textOverflow to Ellipsis text content This is set textOverflow to Ellipsis text content.'.split('')
.join('u200B'))
.textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1)
.fontSize(12)
.border({ width: 1 })
.padding(10)
Text('lineHeight').fontSize(9).fontColor(0xCCCCCC)
Text('This is the text with the line height set. This is the text with the line height set.')
.fontSize(12).border({ width: 1 }).padding(10)
Text('This is the text with the line height set. This is the text with the line height set.')
.fontSize(12).border({ width: 1 }).padding(10)
.lineHeight(20)
}.height(600).width(350).padding({ left: 35, right: 35, top: 35 })
}
}
示例2
@Entry
@Component
struct TextExample2 {
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
Text('decoration').fontSize(9).fontColor(0xCCCCCC)
Text('This is the text content with the decoration set to LineThrough and the color set to Red.')
.decoration({
type: TextDecorationType.LineThrough,
color: Color.Red
})
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('This is the text content with the decoration set to Overline and the color set to Red.')
.decoration({
type: TextDecorationType.Overline,
color: Color.Red
})
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('This is the text content with the decoration set to Underline and the color set to Red.')
.decoration({
type: TextDecorationType.Underline,
color: Color.Red
})
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
// 文本基線偏移
Text('baselineOffset').fontSize(9).fontColor(0xCCCCCC)
Text('This is the text content with baselineOffset 0.')
.baselineOffset(0)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('This is the text content with baselineOffset 30.')
.baselineOffset(30)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('This is the text content with baselineOffset -20.')
.baselineOffset(-20)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
// 文本字符間距
Text('letterSpacing').fontSize(9).fontColor(0xCCCCCC)
Text('This is the text content with letterSpacing 0.')
.letterSpacing(0)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('This is the text content with letterSpacing 3.')
.letterSpacing(3)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('This is the text content with letterSpacing -1.')
.letterSpacing(-1)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
Text('textCase').fontSize(9).fontColor(0xCCCCCC)
Text('This is the text content with textCase set to Normal.')
.textCase(TextCase.Normal)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
// 文本全小寫展示
Text('This is the text content with textCase set to LowerCase.')
.textCase(TextCase.LowerCase)
.fontSize(12)
.border({ width: 1 })
.padding(10)
.width('100%')
// 文本全大寫展示
Text('This is the text content with textCase set to UpperCase.')
.textCase(TextCase.UpperCase)
.fontSize(12).border({ width: 1 }).padding(10)
}.height(700).width(350).padding({ left: 35, right: 35, top: 35 })
}
}
示例3
textShadow,heightAdaptivePolicy,TextOverflow.MARQUEE使用示例:
@Entry
@Component
struct TextExample {
build() {
Column({ space: 8 }) {
Text('textShadow').fontSize(9).fontColor(0xCCCCCC).margin(15).width('90%')
// 設(shè)置文字陰影效果
Text('textShadow')
.width('80%')
.height(55)
.fontSize(40)
.lineHeight(55)
.textAlign(TextAlign.Center)
.textShadow({ radius: 10, color: Color.Black, offsetX: 0, offsetY: 0 })
.borderWidth(1)
Divider()
// 設(shè)置文本自適應(yīng)高度的方式
Text('heightAdaptivePolicy').fontSize(9).fontColor(0xCCCCCC).margin(15).width('90%')
Text('This is the text with the height adaptive policy set')
.width('80%')
.height(90)
.borderWidth(1)
.minFontSize(10)
.maxFontSize(30)
.maxLines(3)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.heightAdaptivePolicy(TextHeightAdaptivePolicy.MAX_LINES_FIRST)
Text('This is the text with the height adaptive policy set')
.width('80%')
.height(90)
.borderWidth(1)
.minFontSize(10)
.maxFontSize(30)
.maxLines(3)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.heightAdaptivePolicy(TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST)
Text('This is the text with the height adaptive policy set')
.width('80%')
.height(90)
.borderWidth(1)
.minFontSize(10)
.maxFontSize(30)
.maxLines(3)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.heightAdaptivePolicy(TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST)
Divider()
Text('marquee').fontSize(9).fontColor(0xCCCCCC).margin(15).width('90%')
// 設(shè)置文本超長時以跑馬燈的方式展示
Text('This is the text with the text overflow set marquee')
.width(300)
.borderWidth(1)
.textOverflow({ overflow: TextOverflow.MARQUEE })
}
}
}
審核編輯 黃宇
-
組件
+關(guān)注
關(guān)注
1文章
515瀏覽量
17881 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2386瀏覽量
42959
發(fā)布評論請先 登錄
相關(guān)推薦
評論