Text基础
首先是Text的相关基础。
https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-text-0000001815927600
Text是显示一段文本的组件。
可以包含Span、ImageSpan、SymbolSpan和ContainerSpan子组件。
接口
Text(content?: string | Resource, value?: TextOptions)
参数名 | 参数类型 | 必填 | 参数描述 |
content | string | Resource | 否 | 文本内容。包含子组件Span时不生效,显示Span内容,并且此时text组件的样式不生效。默认值:' ' |
value11+ | TextOptions | 否 | 文本组件初始化选项。 |
属性
除支持通用属性和文本通用属性外,还支持以下属性:
下表只有部分属性。
名称 | 参数类型 | 描述 |
textAlign | TextAlign | 设置文本段落在水平方向的对齐方式。默认值:TextAlign.Start |
textOverflow | {overflow: TextOverflow} | 设置文本超长时的显示方式。默认值:{overflow: TextOverflow.Clip}说明:文本截断是按字截断。 |
maxLines | number | 设置文本的最大行数。说明:默认情况下,文本是自动折行的,如果指定此参数,则文本最多不会超过指定的行。 |
lineHeight | string | number | Resource | 设置文本的文本行高,设置值不大于0时,不限制文本行高,自适应字体大小,Length为number类型时单位为fp。 |
decoration | {type: TextDecorationType,color?: ResourceColor} | 设置文本装饰线样式及其颜色。默认值:{type: TextDecorationType.None,color:Color.Black} |
效果实现
最终效果如下:
下面的内容主要介绍了如何使用Text组件实现上图中的各种文字效果。
名称
名称的关键代码如下:
Text(relaxPlaceInfo.name) |
maxLines设置文本的最大行数。默认情况下,文本是自动折行的,如果指定此参数,则文本最多不会超过指定的行。如果有多余的文本,可以通过 textOverflow来指定截断方式。
textOverflow设置文本超长时的显示方式。TextOverflow.Ellipsis表示文本超长显示省略号。
textAlign属性设置文本绘制中的文本对齐方式
可选值为: - 'left':文本左对齐。 - 'right':文本右对齐。 - 'center':文本居中对齐。 - 'start':文本对齐界线开始的地方。 - 'end':文本对齐界线结束的地方。 ltr布局模式下'start'和'left'一致,rtl布局模式下'start'和'right'一致·。 默认值:'left' |
评分
关键代码如下:
Row() { |
这个很简单,主要就是字体的大小与字体颜色的设置。
单价、地点等
关键代码如下:
// 单价 |
这些主要也是字体的大小与字体颜色的设置。
距离
关键代码如下:
// 距离 |
Text可以包含Span、ImageSpan、SymbolSpan和ContainerSpan子组件。
这里使用了ImageSpan、Span子组件。
ImageSpan用于显示行内图片:
名称 | 参数类型 | 描述 |
verticalAlign | ImageSpanAlignment | 图片基于文本的对齐方式。默认值:ImageSpanAlignment.BOTTOM |
objectFit | ImageFit | 设置图片的缩放类型。默认值:ImageFit.Cover |
ImageSpanAlignment
名称 | 描述 |
TOP | 图片上边沿与行上边沿对齐。 |
CENTER | 图片中间与行中间对齐。 |
BOTTOM | 图片下边沿与行下边沿对齐。 |
BASELINE | 图片下边沿与文本BaseLine对齐。 |
ImageFit
名称 | 描述 |
Contain | 保持宽高比进行缩小或者放大,使得图片完全显示在显示边界内。 |
Cover | 保持宽高比进行缩小或者放大,使得图片两边都大于或等于显示边界。 |
Auto | 图像会根据其自身尺寸和组件的尺寸进行适当缩放,以在保持比例的同时填充视图。 |
Fill | 不保持宽高比进行放大缩小,使得图片充满显示边界。 |
ScaleDown | 保持宽高比显示,图片缩小或者保持不变。 |
None | 保持原有尺寸显示。 |
Span用于显示行内文本。
标签
实现代码如下:
// 标签 |
通过ForEach来实现多个标签的展示,根据传入参数的不同实现不同的效果。
使用fontColor属性来设置字体的颜色,这里通过传入的参数来分别显示不同的字体颜色
使用backgroundColor属性来设置字体的背景颜色,这里通过传入的参数来分别展示不同的字体背景颜色。
通过borderRadius属性设置元素的边框圆角半径。
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/ts-universal-attributes-border-0000001478341105-V2
名称 | 参数类型 | 描述 |
borderRadius | Length | BorderRadiuses9+ | 设置元素的边框圆角半径,不支持百分比。从API version 9开始,该接口支持在ArkTS卡片中使用,卡片中仅支持设置相同的边框圆角半径。 |
渐变背景标签
关键代码如下:
Text(relaxActivity.tag) |
这里面主要是linearGradient这个属性
名称 | 参数 | 描述 |
linearGradient | {angle?: number | string,direction?: GradientDirection,colors: Array<[ResourceColor, number]>,repeating?: boolean} | 线性渐变。- angle: 线性渐变的起始角度。0点方向顺时针旋转为正向角度。默认值:180- direction: 线性渐变的方向,设置angle后不生效。默认值:GradientDirection.Bottom- colors: 为渐变的颜色描述。- repeating: 为渐变的颜色重复着色。默认值:false |
惠标签
关键代码:
Text('惠') |
这块很简单,就是backgroundColor、borderRadius和padding属性的设置。
项目当前价格
关键代码:
// ¥ |
整体由两个部分组合而成。
设置不同的fontSize,设置相同的fontColor。
折扣
关键代码如下:
// 打折 |
使用border属性设置边框的宽度。
使用borderColor属性设置边框的颜色。
名称 | 参数类型 | 描述 |
border | {width?: Length | EdgeWidths9+,color?: ResourceColor | EdgeColors9+,radius?: Length | BorderRadiuses9+,style?: BorderStyle | EdgeStyles9+} | 统一边框样式设置接口。- width:设置边框宽度。- color:设置边框颜色。- radius:设置边框圆角半径。- style:设置边框样式。说明:边框宽度默认值为0,即不显示边框。 |
borderColor | ResourceColor | EdgeColors9+ | 设置元素的边框颜色。默认值:Color.Black |
borderRadius | Length | BorderRadiuses9+ | 设置元素的边框圆角半径,不支持百分比。 |
原价格
关键代码:
// 原价格 |
这里主要是decoration这个属性。
名称 | 参数类型 | 描述 |
decoration | {type: TextDecorationType,color?: ResourceColor} | 设置文本装饰线样式及其颜色。默认值:{type: TextDecorationType.None,color:Color.Black} |
项目标题
关键代码:
Text(relaxActivity.description) |
这个没什么特别的,所有用的上面已经说过了。
完整代码
布局
/** |
类
export class RelaxActivity { |