文档管理中心

安全控件通用属性

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

安全控件通用属性模块,提供安全控件的布局、尺寸、文字、图标、颜色、边框和交互等通用属性的统一配置能力。

该模块主要用于以下场景:

  • 为PasteButton、SaveButton等安全控件统一设置布局、尺寸、文字、图标、颜色、边框和交互相关属性。
  • 在满足安全控件规范的前提下,调整安全控件显示效果和交互体验。具体约束请参见约束与限制。
  • 通过链式调用方式复用安全控件通用属性能力。
说明

该组件从API version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

关键Class/Interface介绍

核心枚举类型

  • SecurityComponentLayoutDirection: 安全控件图标和文字排列方向枚举,用于指定横向或纵向布局。
  • ButtonType: 安全控件按钮样式枚举,用于指定胶囊、圆形、圆角矩形或普通按钮样式。

核心接口类型

  • SecurityComponentMethod<T>: 安全控件通用属性方法集合,用于为具体安全控件配置布局、尺寸、文字、图标、颜色、边框和交互属性。

iconSize

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

iconSize(value: Dimension): T

设置安全控件图标的尺寸。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Dimension 是

安全控件上图标的尺寸。未显式指定单位时,单位为vp。

默认值:16vp。

该参数不支持百分比字符串。

若传入异常值或无效单位,属性不生效,控件按照默认值显示。

返回值:

展开
类型 说明
T 返回安全控件的属性。

layoutDirection

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

layoutDirection(value: SecurityComponentLayoutDirection): T

设置安全控件图标和文字分布的方向。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value SecurityComponentLayoutDirection 是

安全控件上图标和文字分布的方向。

默认值:SecurityComponentLayoutDirection.HORIZONTAL。

返回值:

展开
类型 说明
T 返回安全控件的属性。

position

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

position(value: Position): T

设置绝对定位,即安全控件的左上角相对于父容器左上角的偏移位置。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Position 是

安全控件左上角相对于父容器左上角的偏移位置。适用于通过绝对定位将安全控件放置到页面固定区域的场景。

未显式指定单位时,单位为vp。

x和y建议均传入数值型坐标。

若参数为undefined、null,或x、y为非数字类型时,该属性不生效,异常坐标会按0处理。

返回值:

展开
类型 说明
T 返回安全控件的属性。

markAnchor

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

markAnchor(value: Position): T

设置安全控件在位置定位时的锚点,以控件左上角作为基准点进行偏移。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Position 是

安全控件在位置定位时的锚点,以控件左上角作为基准点进行偏移。通常与position()、offset()配合使用,用于更精细地设置控件展示位置。

未显式指定单位时,单位为vp。

无默认值。

传入异常值时该属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

offset

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

offset(value: Position | Edges | LocalizedEdges): T

设置安全控件相对于自身布局位置的坐标偏移。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Position | Edges12+ | LocalizedEdges12+ 是

安全控件相对于自身布局位置的坐标偏移。设置后不会影响父容器布局,仅在绘制阶段调整控件显示位置。

未显式指定单位时,单位为vp。

无默认值。

当入参异常时,该属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

fontSize

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

fontSize(value: Dimension): T

设置安全控件文字的尺寸。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Dimension 是

安全控件上文字的尺寸。未显式指定单位时,单位为fp。

默认值:$r('sys.float.ohos_id_text_size_button1')。

该参数不支持百分比字符串。

设置异常值时该属性不生效。

说明: 安全控件文本未完全显示时,点击不授权。fontSize的设置会影响文本是否能完整显示,进而影响安全控件的授权行为。

返回值:

展开
类型 说明
T 返回安全控件的属性。

fontStyle

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

fontStyle(value: FontStyle): T

设置安全控件文字的样式。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value FontStyle 是

安全控件上文字的样式。

默认值:FontStyle.Normal。

返回值:

展开
类型 说明
T 返回安全控件的属性。

fontWeight

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

fontWeight(value: number | FontWeight | string | Resource): T

设置安全控件文字的粗细。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value number | FontWeight | string | Resource20+ 是

安全控件上文字粗细。

number类型取值[100, 900],取值间隔为100,取值越大,字体越粗。

string类型支持使用数字字符串(如'400'),以及FontWeight中的枚举值对应的字符串(如'bold'、'bolder'、'lighter'、'regular'、'medium')。

从API version 20开始,支持Resource类型。Resource类型仅支持'integer'和'string'。类型为'integer'时,取值参考前述number类型;类型为'string'时,取值参考前述string类型。

如果控件未设置fontWeight,文字粗细将默认设置为FontWeight.Medium。value入参为undefined、null,或number类型不在[100, 900]范围内,或string类型不符合FontWeight枚举值对应的字符串格式时,文字粗细将被设置为FontWeight.Normal。

返回值:

展开
类型 说明
T 返回安全控件的属性。

fontFamily

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

fontFamily(value: string | Resource): T

设置安全控件文字的字体。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value string | Resource 是

安全控件上文字的字体。

默认字体:'HarmonyOS Sans'。

返回值:

展开
类型 说明
T 返回安全控件的属性。

fontColor

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

fontColor(value: ResourceColor): T

设置安全控件文字的颜色。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value ResourceColor 是

安全控件上文字的颜色。

默认值:$r('sys.color.font_on_primary')。

返回值:

展开
类型 说明
T 返回安全控件的属性。

iconColor

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

iconColor(value: ResourceColor): T

设置安全控件图标的颜色。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value ResourceColor 是

安全控件上图标的颜色。

默认值:$r('sys.color.icon_on_primary')。

返回值:

展开
类型 说明
T 返回安全控件的属性。

backgroundColor

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

backgroundColor(value: ResourceColor): T

设置安全控件的背景颜色。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value ResourceColor 是

安全控件的背景颜色。安全控件按钮背景色高八位的α值低于0x1a(例如0x1800ff00)时,会被系统强制调整为0xff,以确保安全控件具有足够的可见性,防止因控件过于透明导致用户在不知情的情况下触发授权。

默认值:$r('sys.color.icon_emphasize')。

返回值:

展开
类型 说明
T 返回安全控件的属性。

borderStyle

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

borderStyle(value: BorderStyle): T

设置安全控件边框的样式。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value BorderStyle 是

安全控件边框的样式。

默认不设置边框样式。

返回值:

展开
类型 说明
T 返回安全控件的属性。

borderWidth

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

borderWidth(value: Dimension): T

设置安全控件的边框宽度。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Dimension 是

安全控件的边框宽度。

默认值:0vp。未显式指定单位时,单位为vp。

不支持设置百分比字符串。设置异常值时该属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

borderColor

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

borderColor(value: ResourceColor): T

设置安全控件的边框颜色。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value ResourceColor 是

安全控件的边框颜色。

默认不设置边框颜色。

返回值:

展开
类型 说明
T 返回安全控件的属性。

borderRadius

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

borderRadius(value: Dimension): T

设置安全控件的边框圆角半径。

borderRadius的设置效果受ButtonType影响。当按钮类型为Capsule或Circle时,borderRadius设置不生效,按钮圆角半径由按钮类型自动确定;当按钮类型为Normal或ROUNDED_RECTANGLE时,borderRadius设置生效。具体影响请参见ButtonType。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Dimension 是

安全控件的边框圆角半径。未显式指定单位时,单位为vp。

默认值:0vp。

不支持设置百分比字符串。圆角半径受组件尺寸限制,最小值为0,最大值为宽高中较小值的一半。设置异常值时该属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

borderRadius15+

Phone15+PC/2in115+Tablet15+TV19+Wearable18+

borderRadius(radius: Dimension | BorderRadiuses): T

设置安全控件的边框圆角半径,支持分别设置四个圆角的半径。

borderRadius的设置效果受ButtonType影响。当按钮类型为Capsule或Circle时,borderRadius设置不生效,按钮圆角半径由按钮类型自动确定;当按钮类型为Normal或ROUNDED_RECTANGLE时,borderRadius设置生效。具体影响请参见ButtonType。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
radius Dimension | BorderRadiuses 是

安全控件的边框圆角半径。未显式指定单位时,单位为vp。

默认值:0vp。

Dimension类型不支持设置百分比字符串。圆角半径受组件尺寸限制,最小值为0,最大值为宽高中较小值的一半。设置异常值时该属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

padding

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

padding(value: Padding | Dimension): T

设置安全控件的内边距。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Padding | Dimension 是

安全控件的内边距。未显式指定单位时,单位为vp。

默认值:上下8vp,左右16vp。

说明: 本参数不支持设置百分比字符串数据类型。若设置百分比字符串,则对应内边距显示为0。

返回值:

展开
类型 说明
T 返回安全控件的属性。

align15+

Phone15+PC/2in115+Tablet15+TV19+Wearable18+

align(alignType: Alignment): T

设置安全控件图标文本的对齐方式。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
alignType Alignment 是

安全控件图标文本的对齐方式。图标文本作为整体在控件背景范围内进行对齐,显示效果受padding影响,在padding生效的基础上按照alignType参数指定的对齐方式进行对齐。

默认值:Alignment.Center。

返回值:

展开
类型 说明
T 返回安全控件的属性。

textIconSpace

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

textIconSpace(value: Dimension): T

设置安全控件中图标和文字的间距。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Dimension 是

安全控件中图标和文字的间距。未显式指定单位时,单位为vp。

默认值:4vp。

说明: 本参数不支持设置百分比字符串数据类型,若设置百分比字符串,则图标和文字的间距显示为0;从API version 14开始,若设置值为负值,则使用默认值。

返回值:

展开
类型 说明
T 返回安全控件的属性。

width11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

width(value: Length): T

设置安全控件自身的宽度,缺省时将根据元素内容自适配宽度。配合自适应字号相关属性使用时,width的设置会影响文本是否能完整显示。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Length 是

安全控件自身的宽度,缺省时将根据元素内容自适配宽度。未显式指定单位时,单位为vp。

配合minFontSize、maxFontSize、maxLines以及heightAdaptivePolicy使用实现自适应字号时,安全控件文本未完全显示将导致点击不授权。设置异常值时该属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

height11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

height(value: Length): T

设置安全控件自身的高度,缺省时将根据元素内容自适配高度。配合自适应字号相关属性使用时,height的设置会影响文本是否能完整显示。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value Length 是

安全控件自身的高度,缺省时将根据元素内容自适配高度。未显式指定单位时,单位为vp。

配合minFontSize、maxFontSize、maxLines以及heightAdaptivePolicy使用实现自适应字号时,安全控件文本未完全显示将导致点击不授权。设置异常值时该属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

size11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

size(value: SizeOptions): T

设置宽度和高度,缺省时将根据元素内容自适配宽高尺寸。size方法用于同时设置宽度和高度,如需单独设置宽度或高度,可使用width或height方法。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value SizeOptions 是

宽度和高度,缺省时将根据元素内容自适配宽高尺寸。未显式指定单位时,单位为vp。

配合minFontSize、maxFontSize、maxLines以及heightAdaptivePolicy使用实现自适应字号时,安全控件文本未完全显示将导致点击不授权。size的设置会影响文本是否能完整显示。

返回值:

展开
类型 说明
T 返回安全控件的属性。

constraintSize11+

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

constraintSize(value: ConstraintSizeOptions): T

设置约束尺寸,组件布局时限制尺寸范围。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
value ConstraintSizeOptions 是

约束尺寸,组件布局时进行尺寸范围限制。未显式指定单位时,单位为vp。

constraintSize的优先级高于width和height。

使用自适应字号相关属性时,安全控件文本未完全显示将导致点击不授权。constraintSize的设置会影响文本是否能完整显示。

取值结果参考constraintSize取值对width/height影响。

默认值:

{

minWidth: 0,

maxWidth: Infinity,

minHeight: 0,

maxHeight: Infinity

}。

返回值:

展开
类型 说明
T 返回安全控件的属性。

alignRules15+

Phone15+PC/2in115+Tablet15+TV19+Wearable18+

alignRules(alignRule: AlignRuleOption): T

设置在相对容器中子组件的对齐规则,仅当父容器为RelativeContainer时生效。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
alignRule AlignRuleOption 是 对齐规则配置对象,包含top、bottom、left、right、center等锚点对齐配置,用于指定安全控件在RelativeContainer中的对齐位置和方式。

返回值:

展开
类型 说明
T 返回安全控件的属性。

alignRules15+

Phone15+PC/2in115+Tablet15+TV19+Wearable18+

alignRules(alignRule: LocalizedAlignRuleOptions): T

设置在相对容器中子组件的对齐规则,仅当父容器为RelativeContainer时生效。该方法水平方向上以start和end分别替代上述alignRules的left和right,以便在RTL模式下能镜像显示,建议优先使用该方法。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
alignRule LocalizedAlignRuleOptions 是 对齐规则配置对象,使用start/end替代left/right以支持RTL布局镜像。包含top、bottom、start、end、center等锚点对齐配置,用于指定安全控件在RelativeContainer中的对齐位置和方式。

返回值:

展开
类型 说明
T 返回安全控件的属性。

id15+

Phone15+PC/2in115+Tablet15+TV19+Wearable18+

id(id: string): T

组件的唯一标识,唯一性由使用者保证。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
id string 是

组件的唯一标识,唯一性由使用者保证。

默认值:''。

返回值:

展开
类型 说明
T 返回安全控件的属性。

chainMode15+

Phone15+PC/2in115+Tablet15+TV19+Wearable18+

chainMode(direction: Axis, style: ChainStyle): T

设置以该组件为链头所构成的链式布局的参数(包括链的方向和样式),仅当父容器为RelativeContainer时生效。

元服务API: 从API version 15开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
direction Axis 是 链式布局的方向,用于指定以该组件为链头的链在RelativeContainer中的排列方向。
style ChainStyle 是 链式布局的样式,用于控制链内子组件的分布方式,如均匀分布、两端对齐或紧凑排列等,具体取值及效果请参考ChainStyle。

返回值:

展开
类型 说明
T 返回安全控件的属性。

minFontScale18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

minFontScale(scale: number | Resource): T

设置文本最小的字体缩小倍数。调用后,当系统字体缩放使文本缩小时,文本缩小倍数不会低于设定的最小缩小倍数。

与maxFontScale可配合使用,minFontScale控制缩小倍数的下限,maxFontScale控制放大倍数的上限。两者可独立设置,也可同时设置以精确控制字体缩放范围。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
scale number | Resource 是

文本最小的字体缩小倍数。

取值范围:[0, 1]。

说明:

设置的值小于0时,按值为0处理,即允许缩小到任意倍数;设置的值大于1时,按值为1处理,即不允许缩小字体;设置的值为undefined或null等非法值时,属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

maxFontScale18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

maxFontScale(scale: number | Resource): T

设置文本最大的字体放大倍数。调用后,当系统字体缩放使文本放大时,文本放大倍数不会超过设定的最大放大倍数。

与minFontScale可配合使用,maxFontScale控制放大倍数的上限,minFontScale控制缩小倍数的下限。两者可独立设置,也可同时设置以精确控制字体缩放范围。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
scale number | Resource 是

文本最大的字体放大倍数。

取值范围:[1, +∞)。

说明:

设置的值小于1时,按值为1处理;设置的值为undefined或null等非法值时,属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

minFontSize18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

minFontSize(minSize: number | string | Resource): T

设置文本最小显示字号。

  • 配合maxFontSize以及maxLines或布局大小限制使用,可实现自适应字号,单独设置不生效。
  • minFontSize应小于maxFontSize,若设置值大于maxFontSize,将按maxFontSize处理。
  • minFontSize小于或等于0时,自适应字号不生效。
  • 自适应字号生效时,fontSize设置不生效。
  • 安全控件文本未完全显示时,点击不授权。minFontSize的设置会影响文本是否能完整显示,进而影响安全控件的授权行为。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
minSize number | string | Resource 是

文本最小显示字号。未显式指定单位时,单位为fp。

取值范围:(0, +∞)。minFontSize应小于maxFontSize,若设置值大于maxFontSize,将按maxFontSize处理;小于或等于0时,自适应字号不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

maxFontSize18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

maxFontSize(maxSize: number | string | Resource): T

设置文本最大显示字号。

  • 配合minFontSize以及maxLines或布局大小限制使用,可实现自适应字号,单独设置不生效。
  • maxFontSize应大于minFontSize,若maxFontSize小于minFontSize,minFontSize将按maxFontSize处理。
  • 当自适应字号生效时,设置的fontSize将不生效。
  • 安全控件文本未完全显示时,点击不授权。maxFontSize的设置会影响文本是否能完整显示,进而影响安全控件的授权行为。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
maxSize number | string | Resource 是

文本最大显示字号。未显式指定单位时,单位为fp。

取值范围:(0, +∞)。

说明:

设置的值小于或等于0时,自适应字号不生效;设置异常值时该属性不生效。

返回值:

展开
类型 说明
T 返回安全控件的属性。

maxLines18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

maxLines(line: number | Resource): T

设置文本的最大行数。默认情况下,文本自动换行,指定此属性后,文本的最大显示行数不会超过指定值。可独立使用限制文本行数,也可配合minFontSize、maxFontSize以及heightAdaptivePolicy使用。配合自适应字号相关属性使用时,安全控件文本未完全显示将导致点击不授权。maxLines的设置会影响文本是否能完整显示,进而影响安全控件的授权行为。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
line number | Resource20+ 是

文本的最大行数。

number类型入参的取值范围:[1, +∞)。从API version 20开始,支持Resource类型。Resource类型仅支持'integer',取值范围为[1, +∞)。

说明:

设置的值小于1时,按默认值1000000处理。

返回值:

展开
类型 说明
T 返回安全控件的属性。

heightAdaptivePolicy18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

heightAdaptivePolicy(policy: TextHeightAdaptivePolicy): T

设置文字自适应高度的方式。适用于安全控件在不同尺寸或不同语言环境下,需要动态调整文本显示以保证文本完整显示的场景。

安全控件文本以maxFontSize的值进行布局,如果可以完整显示文本,则无需进行自适应调节,该接口设置不生效,否则按指定文本自适应高度的方式进行调节,具体自适应调节规格如下:

当设置为TextHeightAdaptivePolicy.MAX_LINES_FIRST时,优先使用maxLines属性来调整文本高度。如果使用maxLines属性的布局大小超过了布局约束,则尝试在minFontSize和maxFontSize的范围内缩小字体以显示更多文本,如果此时仍不能完整显示文本信息,安全控件会自适应调整高度以使得文本完整显示。

当设置为TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST时,优先使用minFontSize属性来调整文本高度。如果使用minFontSize属性可以将文本布局在一行中,则尝试在minFontSize和maxFontSize的范围内增大字体并使用最大可能的字体大小;如果使用minFontSize属性无法将文本布局在一行中,则尝试使用maxLines属性进行布局,如果此时仍不能完整显示文本信息,安全控件会自适应调整高度以使得文本完整显示。

当设置为TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST时,优先使用布局约束来调整文本高度。如果布局大小超过布局约束,则尝试在minFontSize和maxFontSize的范围内缩小字体以满足布局约束。如果将字体大小缩小到minFontSize后,布局大小仍然超过布局约束,则删除超过布局约束的行;如果设置了maxLines属性,布局后行数不超过maxLines值(可能存在横向截断);如果未设置maxLines属性值,布局后的行数不限制。

安全控件文本未完全显示时,点击不授权。文本是否完全显示受heightAdaptivePolicy、minFontSize、maxFontSize、maxLines、width和height等属性影响。

具体效果请见示例。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
policy TextHeightAdaptivePolicy 是

文本自适应高度的方式。

默认值:TextHeightAdaptivePolicy.MAX_LINES_FIRST。

返回值:

展开
类型 说明
T 返回安全控件的属性。

enabled18+

Phone18+PC/2in118+Tablet18+TV19+Wearable18+

enabled(respond: boolean): T

设置安全控件是否可交互。

元服务API: 从API version 18开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
respond boolean 是

值为true表示组件可交互,响应点击等操作。

值为false表示组件不可交互,不响应点击等操作。

默认值:true。

返回值:

展开
类型 说明
T 返回安全控件的属性。

focusBox22+

Phone22+PC/2in122+Tablet22+TV22+Wearable22+

focusBox(style: FocusBoxStyle): T

设置安全控件系统焦点框样式。

元服务API: 从API version 22开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
style FocusBoxStyle 是 焦点框样式配置对象,包含margin(焦点框与控件的间距)和strokeColor(焦点框边框颜色)等属性,用于自定义系统焦点框的外观样式。

返回值:

展开
类型 说明
T 返回安全控件的属性。

fallbackLineSpacing

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+

fallbackLineSpacing(enabled: boolean): T

针对多行文字叠加,支持行高基于文字实际高度自适应。

fallbackLineSpacing属性和RichEditorTextStyle的lineHeight属性强相关。当设置的 lineHeight 值小于文本在当前字号下的实际渲染高度时,将根据fallbackLineSpacing 属性值来确定行高是否要基于文字实际高度自适应。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从API版本26.0.0开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
enabled boolean 是

行高是否基于文字实际高度自适应。

true表示行高基于文字实际高度自适应;false表示行高不基于文字实际高度自适应。

返回值:

展开
类型 说明
T 返回安全控件的属性。

accessibilityRole

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+

accessibilityRole(role: SecurityComponentRoleType): T

设置无障碍组件类型,特定组件类型有特定的朗读方式,可以根据应用诉求,修改组件类型,用于控制无障碍模式下对组件的朗读方式和朗读内容。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从API版本26.0.0开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
role SecurityComponentRoleType 是 屏幕朗读播报的组件类型,如按钮、图表。具体类型可由开发者自定义。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityDefaultFocus

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+

accessibilityDefaultFocus(focus: boolean): T

设置页面的屏幕朗读初始焦点,用于指定页面加载后屏幕朗读首次播报的焦点组件。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从API版本26.0.0开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
focus boolean 是 为页面设置屏幕朗读初始焦点。值为true则表示该组件为当前页默认首焦点,值为false或其他值无效。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityNextFocusId

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+

accessibilityNextFocusId(nextId: string): T

支持在屏幕朗读过程中,指定朗读的下一个焦点组件。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从API版本26.0.0开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
nextId string 是 下一个被指定聚焦组件的唯一标识id。若唯一标识id无对应组件,则设置无效。

返回值:

展开
类型 说明
T 返回当前对象。

accessibilityDescription

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+

accessibilityDescription(description: string | Resource): T

该属性用于为控件提供无障碍描述。开发人员可通过设置详细的文字说明,帮助用户理解组件的功能及即将执行的操作。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从API版本26.0.0开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
description string | Resource 是 控件的无障碍说明。用于补充组件的详细操作解释,帮助用户理解当前操作的具体内容及其潜在后果。控件被选中时,若组件同时包含文本属性和无障碍说明,优先播报文本内容,再播报无障碍说明。该参数的默认值为空字符串。

返回值:

展开
类型 说明
T 返回当前对象。

SecurityComponentLayoutDirection

Phone12+PC/2in113+Tablet12+TV19+Wearable18+

安全控件上图标和文字的排列方向。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 值 说明
HORIZONTAL 0 安全控件上图标和文字分布的方向为水平排列。
VERTICAL 1 安全控件上图标和文字分布的方向为垂直排列。

ButtonType

按钮类型。

不同的按钮类型将影响属性borderRadius(边框圆角半径)的设置效果。影响如下:

  • 当按钮类型为Capsule时,borderRadius设置不生效,按钮圆角半径始终为宽、高中较小值的一半。
  • 当按钮类型为Circle时,borderRadius设置不生效:
    • 若同时设置了宽和高,按钮圆角半径为宽高中较小值的一半;
    • 若只设置宽、高中的一个,按钮圆角半径为所设宽或所设高值的一半;
    • 若未设置宽高或borderRadius的值为负数,按钮圆角半径将根据按钮的实际布局尺寸自动计算。适用于图标按钮,如音量控制、播放/暂停等场景。
  • 当按钮类型为Normal时,按钮圆角半径可通过borderRadius设置,圆角大小受组件尺寸限制,最小值为0,最大值为组件宽高中较小值的一半。适用于需要自定义圆角大小或保持直角的按钮场景。
  • 当按钮类型为ROUNDED_RECTANGLE时,若不设置borderRadius,圆角矩形按钮的圆角半径大小保持默认值20vp不变,不随按钮高度变化而变化。适用于需要统一圆角风格的按钮场景。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 值 说明
Normal 0 普通按钮。
Capsule 1 胶囊型按钮(圆角半径为高度的一半)。
Circle 2 圆形按钮。
ROUNDED_RECTANGLE16+ 8 圆角矩形按钮(默认值:圆角半径大小20vp)。

SecurityComponentRoleType

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+

定义组件的屏幕朗读功能角色类型。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

元服务API: 从API版本26.0.0开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

展开
名称 值 说明
ROLE_NONE 0 NULL。
BUTTON 1 按钮。

示例

说明

为避免控件样式不合法导致授权失败,请开发者先了解安全控件样式的约束与限制。

示例1

设置SecurityComponent的基础属性,生成一个保存控件。

收起
自动换行
深色代码主题
复制
  1. @Entry
  2. @Component
  3. struct Index {
  4. build() {
  5. Row() {
  6. Column({ space: 5 }) {
  7. // 生成一个保存控件,并设置它的SecurityComponent属性。
  8. SaveButton()
  9. .fontSize(35)
  10. .fontColor(Color.White)
  11. .iconSize(30)
  12. .layoutDirection(SecurityComponentLayoutDirection.HORIZONTAL)
  13. .borderWidth(1)
  14. .borderStyle(BorderStyle.Dashed)
  15. .borderColor(Color.Blue)
  16. .borderRadius(20)
  17. .fontWeight(100)
  18. .iconColor(Color.White)
  19. .padding({
  20. left: 50,
  21. top: 50,
  22. bottom: 50,
  23. right: 50
  24. })
  25. .textIconSpace(20)
  26. .backgroundColor(0x3282f6)
  27. // 生成一个保存控件,设置固定宽高。
  28. SaveButton().size({ width: 200, height: 100 })
  29. // 生成一个保存控件,设置固定宽高,并设置图标文本左对齐。
  30. SaveButton()
  31. .size({ width: 200, height: 100 })
  32. .align(Alignment.Start)
  33. // 生成一个Normal类型的保存控件,分别设置四个圆角半径。
  34. SaveButton({ icon: SaveIconStyle.FULL_FILLED, text: SaveDescription.DOWNLOAD, buttonType: ButtonType.Normal })
  35. .size({ width: 150, height: 80 })
  36. .borderRadius({
  37. topLeft: 20,
  38. topRight: 25,
  39. bottomRight: 30,
  40. bottomLeft: 35
  41. })
  42. // 生成一个保存控件,设置最大宽度约束。
  43. SaveButton().constraintSize({ maxWidth: 60 })
  44. }.width('100%')
  45. }.height('100%')
  46. }
  47. }

示例2

以容器和容器内组件作为锚点进行布局。

收起
自动换行
深色代码主题
复制
  1. @Entry
  2. @Component
  3. struct Index {
  4. build() {
  5. Row() {
  6. RelativeContainer() {
  7. // 以容器为锚点,定位到左上角,并设置id供其他组件引用。
  8. SaveButton({ icon: SaveIconStyle.FULL_FILLED, text: SaveDescription.DOWNLOAD, buttonType: ButtonType.Normal })
  9. .width(100)
  10. .height(100)
  11. .backgroundColor('#A3CF62')
  12. .alignRules({
  13. top: { anchor: '__container__', align: VerticalAlign.Top },
  14. left: { anchor: '__container__', align: HorizontalAlign.Start }
  15. })
  16. .id('row1')
  17. // 以容器为锚点,定位到右上角,并设置id供其他组件引用。
  18. SaveButton({ icon: SaveIconStyle.FULL_FILLED, text: SaveDescription.DOWNLOAD, buttonType: ButtonType.Normal })
  19. .width(100)
  20. .height(100)
  21. .backgroundColor('#00AE9D')
  22. .alignRules({
  23. top: { anchor: '__container__', align: VerticalAlign.Top },
  24. right: { anchor: '__container__', align: HorizontalAlign.End }
  25. })
  26. .id('row2')
  27. // 以row1和row2为锚点,定位到两者下方之间。
  28. SaveButton({ icon: SaveIconStyle.FULL_FILLED, text: SaveDescription.DOWNLOAD, buttonType: ButtonType.Normal })
  29. .height(100)
  30. .backgroundColor('#0A59F7')
  31. .alignRules({
  32. top: { anchor: 'row1', align: VerticalAlign.Bottom },
  33. left: { anchor: 'row1', align: HorizontalAlign.End },
  34. right: { anchor: 'row2', align: HorizontalAlign.Start }
  35. })
  36. .id('row3')
  37. // 以row3、容器和row1为锚点,约束控件在左下区域的布局范围。
  38. SaveButton({ icon: SaveIconStyle.FULL_FILLED, text: SaveDescription.DOWNLOAD, buttonType: ButtonType.Normal })
  39. .backgroundColor('#2CA9E0')
  40. .alignRules({
  41. top: { anchor: 'row3', align: VerticalAlign.Bottom },
  42. bottom: { anchor: '__container__', align: VerticalAlign.Bottom },
  43. left: { anchor: '__container__', align: HorizontalAlign.Start },
  44. right: { anchor: 'row1', align: HorizontalAlign.End }
  45. })
  46. .id('row4')
  47. // 以row3、row2和容器为锚点,约束控件在右下区域的布局范围。
  48. SaveButton({ icon: SaveIconStyle.FULL_FILLED, text: SaveDescription.DOWNLOAD, buttonType: ButtonType.Normal })
  49. .backgroundColor('#30C9F7')
  50. .alignRules({
  51. top: { anchor: 'row3', align: VerticalAlign.Bottom },
  52. bottom: { anchor: '__container__', align: VerticalAlign.Bottom },
  53. left: { anchor: 'row2', align: HorizontalAlign.Start },
  54. right: { anchor: '__container__', align: HorizontalAlign.End }
  55. })
  56. .id('row5')
  57. }
  58. .width(300).height(300)
  59. .margin({ left: 50 })
  60. .border({ width: 2, color: '#6699FF' })
  61. }
  62. .height('100%')
  63. }
  64. }

示例3

安全控件文本高度自适应。

收起
自动换行
深色代码主题
复制
  1. @Entry
  2. @Component
  3. struct Index {
  4. build() {
  5. Column() {
  6. Scroll() {
  7. Column({ space: 10 }) {
  8. Column({ space: 10 }) {
  9. Row() {
  10. Text('FontSize = 20,图例:').fontSize(20)
  11. Text('快速保存图片').fontSize(20).fontColor(Color.Blue)
  12. }.width('100%')
  13. Row() {
  14. Text('FontSize = 10,图例:').fontSize(20)
  15. Text('快速保存图片').fontSize(10).fontColor(Color.Blue)
  16. }.width('100%')
  17. }.width('100%')
  18. Flex({ wrap: FlexWrap.Wrap }) {
  19. Column() {
  20. Row() {
  21. Text('heightAdaptivePolicy = MIN_FONT_SIZE_FIRST').fontSize(16).fontWeight(FontWeight.Bold)
  22. }
  23. }.height(40)
  24. Column() {
  25. Column({ space: 10 }) {
  26. Row() {
  27. Text('无需自适应调节')
  28. }.width('90%')
  29. // 当前布局无需调整即可完整显示文本,文本无需自适应调节。
  30. SaveButton({
  31. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  32. })
  33. .maxFontSize(20)
  34. .minFontSize(10)
  35. .maxLines(6)
  36. .heightAdaptivePolicy(TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST)
  37. .width(120)
  38. .height(20)
  39. .padding(0)
  40. .borderRadius(10)
  41. }
  42. }.width('50%').height(90).backgroundColor(0x10000000)
  43. Column() {
  44. Column({ space: 10 }) {
  45. Row() {
  46. Text('优先减少字号')
  47. }.width('90%')
  48. // 当前布局无法完整显示文字,优先缩小fontSize,缩小后可以一行显示。
  49. SaveButton({
  50. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  51. })
  52. .maxFontSize(20)
  53. .minFontSize(10)
  54. .maxLines(6)
  55. .heightAdaptivePolicy(TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST)
  56. .width(60)
  57. .height(20)
  58. .padding(0)
  59. .borderRadius(10)
  60. }
  61. }.width('50%').height(90).backgroundColor(0x30000000)
  62. Column() {
  63. Column({ space: 10 }) {
  64. Row() {
  65. Text('先减小字号,再换行')
  66. }.width('90%')
  67. // 当前布局无法完整显示文字,优先缩小fontSize,缩小后仍然无法完整显示,尝试使用maxLines属性换行布局。
  68. // 由于高度不足以完整显示,自动调整高度使文本完整显示。
  69. SaveButton({
  70. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  71. })
  72. .maxFontSize(20)
  73. .minFontSize(10)
  74. .maxLines(6)
  75. .heightAdaptivePolicy(TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST)
  76. .width(20)
  77. .height(20)
  78. .padding(0)
  79. .borderRadius(10)
  80. }
  81. }.width('50%').height(90).backgroundColor(0x30000000)
  82. Column() {
  83. Column({ space: 10 }) {
  84. Row() {
  85. Text('减小字号+换行,文字被截断')
  86. }.width('90%')
  87. // 当前布局无法完整显示文字,优先缩小fontSize,缩小后仍然无法完整显示,尝试使用maxLines属性换行布局。
  88. // 由于maxLines属性为3,只能显示三行,所以文字被截断。
  89. // 由于高度不足以完整显示,自动调整高度使文本完整显示。
  90. SaveButton({
  91. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  92. })
  93. .maxFontSize(20)
  94. .minFontSize(10)
  95. .maxLines(3)
  96. .heightAdaptivePolicy(TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST)
  97. .width(10)
  98. .height(20)
  99. .padding(0)
  100. .borderRadius(10)
  101. }
  102. }.width('50%').height(90).backgroundColor(0x10000000)
  103. }.width('100%')
  104. Flex({ wrap: FlexWrap.Wrap }) {
  105. Column() {
  106. Row() {
  107. Text('heightAdaptivePolicy = MAX_LINES_FIRST').fontSize(16).fontWeight(FontWeight.Bold)
  108. }
  109. }.height(40)
  110. Column() {
  111. Column({ space: 10 }) {
  112. Row() {
  113. Text('无需自适应调节')
  114. }.width('90%')
  115. // 当前布局无需调整即可完整显示文本,文本无需自适应调节。
  116. SaveButton({
  117. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  118. })
  119. .maxFontSize(20)
  120. .minFontSize(10)
  121. .maxLines(6)
  122. .heightAdaptivePolicy(TextHeightAdaptivePolicy.MAX_LINES_FIRST)
  123. .width(120)
  124. .height(20)
  125. .padding(0)
  126. .borderRadius(10)
  127. }
  128. }.width('50%').height(90).backgroundColor(0x10000000)
  129. Column() {
  130. Column({ space: 10 }) {
  131. Row() {
  132. Text('优先换行')
  133. }.width('90%')
  134. // 当前布局无法完整显示文字,优先使用maxLines属性换行布局,换行后可以完整显示。
  135. // 由于高度不足以完整显示,自动调整高度使文本完整显示。
  136. SaveButton({
  137. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  138. })
  139. .maxFontSize(20)
  140. .minFontSize(10)
  141. .maxLines(6)
  142. .heightAdaptivePolicy(TextHeightAdaptivePolicy.MAX_LINES_FIRST)
  143. .width(60)
  144. .height(20)
  145. .padding(0)
  146. .borderRadius(10)
  147. }
  148. }.width('50%').height(90).backgroundColor(0x30000000)
  149. Column() {
  150. Column({ space: 10 }) {
  151. Row() {
  152. Text('先换行,再减小字号')
  153. }.width('90%')
  154. // 当前布局无法完整显示文字,优先使用maxLines属性换行布局,换行后仍然无法完整显示,缩小fontSize尝试布局,缩小字体后可以完整显示。
  155. // 由于高度不足以完整显示,自动调整高度使文本完整显示。
  156. SaveButton({
  157. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  158. })
  159. .maxFontSize(20)
  160. .minFontSize(10)
  161. .maxLines(3)
  162. .heightAdaptivePolicy(TextHeightAdaptivePolicy.MAX_LINES_FIRST)
  163. .width(20)
  164. .height(20)
  165. .padding(0)
  166. .borderRadius(10)
  167. }
  168. }.width('50%').height(90).backgroundColor(0x30000000)
  169. Column() {
  170. Column({ space: 10 }) {
  171. Row() {
  172. Text('换行+减小字号,文字被截断')
  173. }.width('90%')
  174. // 当前布局无法完整显示文字,优先使用maxLines属性换行布局,换行后仍然无法完整显示,缩小fontSize尝试布局。
  175. // 由于minFontSize属性为10,每行只能显示一个字,所以文字被截断。
  176. // 由于高度不足以完整显示,自动调整高度使文本完整显示。
  177. SaveButton({
  178. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  179. })
  180. .maxFontSize(20)
  181. .minFontSize(10)
  182. .maxLines(3)
  183. .heightAdaptivePolicy(TextHeightAdaptivePolicy.MAX_LINES_FIRST)
  184. .width(10)
  185. .height(20)
  186. .padding(0)
  187. .borderRadius(10)
  188. }
  189. }.width('50%').height(90).backgroundColor(0x10000000)
  190. }.width('100%')
  191. Flex({ wrap: FlexWrap.Wrap }) {
  192. Column() {
  193. Row() {
  194. Text('heightAdaptivePolicy = LAYOUT_CONSTRAINT_FIRST').fontSize(16).fontWeight(FontWeight.Bold)
  195. }
  196. }.height(40)
  197. Column() {
  198. Column({ space: 10 }) {
  199. Row() {
  200. Text('无需自适应调节')
  201. }.width('90%')
  202. // 当前布局无需调整即可完整显示文本,文本无需自适应调节。
  203. SaveButton({
  204. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  205. })
  206. .maxFontSize(20)
  207. .minFontSize(10)
  208. .maxLines(6)
  209. .heightAdaptivePolicy(TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST)
  210. .width(120)
  211. .height(20)
  212. .padding(0)
  213. .borderRadius(10)
  214. }
  215. }.width('50%').height(90).backgroundColor(0x10000000)
  216. Column() {
  217. Column({ space: 10 }) {
  218. Row() {
  219. Text('不改变布局约束,优先减小字号')
  220. }.width('90%')
  221. // 当前布局无法完整显示文字,优先缩小fontSize,缩小后可以一行显示。
  222. SaveButton({
  223. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  224. })
  225. .maxFontSize(20)
  226. .minFontSize(10)
  227. .maxLines(6)
  228. .heightAdaptivePolicy(TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST)
  229. .width(60)
  230. .height(20)
  231. .padding(0)
  232. .borderRadius(10)
  233. }
  234. }.width('50%').height(90).backgroundColor(0x30000000)
  235. Column() {
  236. Column({ space: 10 }) {
  237. Row() {
  238. Text('不改变布局约束,先减小字号再换行')
  239. }.width('90%')
  240. // 当前布局无法完整显示文字,优先缩小fontSize,缩小后无法完整显示,使用maxLines属性进行换行布局。布局后可以完整显示。
  241. // LAYOUT_CONSTRAINT_FIRST模式下安全控件高度不支持自适应调整。
  242. SaveButton({
  243. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  244. })
  245. .maxFontSize(20)
  246. .minFontSize(10)
  247. .maxLines(6)
  248. .heightAdaptivePolicy(TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST)
  249. .width(20)
  250. .height(40)
  251. .padding(0)
  252. .borderRadius(10)
  253. }
  254. }.width('50%').height(90).backgroundColor(0x30000000)
  255. Column() {
  256. Column({ space: 10 }) {
  257. Row() {
  258. Text(`Maxlines不够\n文字被截断`)
  259. }.width('90%')
  260. // 当前布局无法完整显示文字,优先缩小fontSize,缩小后无法完整显示,但由于height只能显示一行,所以文字被截断。
  261. // LAYOUT_CONSTRAINT_FIRST模式下安全控件高度不支持自适应调整。
  262. SaveButton({
  263. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  264. })
  265. .maxFontSize(20)
  266. .minFontSize(10)
  267. .maxLines(2)
  268. .heightAdaptivePolicy(TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST)
  269. .width(20)
  270. .height(40)
  271. .padding(0)
  272. .borderRadius(10)
  273. }
  274. }.width('25%').height(90).backgroundColor(0x10000000)
  275. Column() {
  276. Column({ space: 10 }) {
  277. Row() {
  278. Text(`高度不够\n文字被截断`)
  279. }.width('90%')
  280. // 当前布局无法完整显示文字,优先缩小fontSize,缩小后无法完整显示,但由于height只能显示一行,所以文字被截断。
  281. // LAYOUT_CONSTRAINT_FIRST模式下安全控件高度不支持自适应调整。
  282. SaveButton({
  283. text: SaveDescription.QUICK_SAVE_TO_GALLERY, buttonType: ButtonType.Normal
  284. })
  285. .maxFontSize(20)
  286. .minFontSize(10)
  287. .maxLines(6)
  288. .heightAdaptivePolicy(TextHeightAdaptivePolicy.LAYOUT_CONSTRAINT_FIRST)
  289. .width(20)
  290. .height(20)
  291. .padding(0)
  292. .borderRadius(10)
  293. }
  294. }.width('25%').height(90).backgroundColor(0x20000000)
  295. }.width('100%')
  296. }.width('100%')
  297. }.width('100%').margin({ top: 10, left: 10, right: 10 })
  298. }
  299. }
  300. }

示例4

设置安全控件系统焦点框样式。

收起
自动换行
深色代码主题
复制
  1. import { ColorMetrics, LengthMetrics } from '@kit.ArkUI';
  2. @Entry
  3. @Component
  4. struct Index {
  5. build() {
  6. Row() {
  7. Column({ space: 30 }) {
  8. Column({ space: 15 }) {
  9. Text('不设置focusBox属性的默认安全控件')
  10. // 不设置focusBox属性,使用系统默认焦点框样式。
  11. SaveButton()
  12. }
  13. Column({ space: 15 }) {
  14. Text('紧贴安全控件的黑色焦点框')
  15. // 设置margin为0使焦点框紧贴控件,strokeColor设为黑色。
  16. SaveButton()
  17. .focusBox({
  18. margin: new LengthMetrics(0),
  19. strokeColor: ColorMetrics.rgba(0, 0, 0),
  20. })
  21. }
  22. Column({ space: 15 }) {
  23. Text('较大的红色焦点框')
  24. // 设置margin为10vp,strokeColor设为红色,strokeWidth设为10px。
  25. SaveButton()
  26. .focusBox({
  27. margin: new LengthMetrics(10),
  28. strokeColor: ColorMetrics.rgba(255, 0, 0),
  29. strokeWidth: LengthMetrics.px(10)
  30. })
  31. }
  32. Column({ space: 15 }) {
  33. Text('矩形安全控件')
  34. // 为Normal类型控件设置自定义焦点框,焦点框按矩形控件外轮廓显示。
  35. SaveButton({ icon: SaveIconStyle.FULL_FILLED, text: SaveDescription.DOWNLOAD, buttonType: ButtonType.Normal })
  36. .focusBox({
  37. margin: new LengthMetrics(10),
  38. strokeColor: ColorMetrics.rgba(255, 0, 0),
  39. strokeWidth: LengthMetrics.px(10)
  40. })
  41. }
  42. Column({ space: 15 }) {
  43. Text('圆形安全控件')
  44. // 为Circle类型控件设置自定义焦点框,焦点框按圆形控件外轮廓显示。
  45. SaveButton({ icon: SaveIconStyle.FULL_FILLED, text: SaveDescription.DOWNLOAD, buttonType: ButtonType.Circle })
  46. .focusBox({
  47. margin: new LengthMetrics(10),
  48. strokeColor: ColorMetrics.rgba(255, 0, 0),
  49. strokeWidth: LengthMetrics.px(10)
  50. })
  51. }
  52. }
  53. .width('100%')
  54. }
  55. .height('100%')
  56. }
  57. }

示例5

设置安全控件是否支持文字实际高度自适应及屏幕朗读模式下相关表现。

收起
自动换行
深色代码主题
复制
  1. @Entry
  2. @Component
  3. struct Index {
  4. build() {
  5. Row() {
  6. Column({ space: 10 }) {
  7. // 设置保存控件的fallbackLineSpacing为true。
  8. SaveButton()
  9. .fallbackLineSpacing(true)
  10. .id('btn1')
  11. // 设置该保存控件为页面设置屏幕朗读初始焦点。
  12. SaveButton()
  13. .accessibilityDefaultFocus(true)
  14. .id('btn2')
  15. // 指定屏幕朗读扫动走焦过程中该保存控件的下一个焦点为btn1。
  16. SaveButton()
  17. .accessibilityDefaultFocus(true)
  18. .id('btn3')
  19. .accessibilityNextFocusId('btn1')
  20. // 指定该保存控件的无障碍组件类型为null。
  21. SaveButton()
  22. .accessibilityRole(SecurityComponentRoleType.ROLE_NONE)
  23. .id('btn4')
  24. // 指定该保存控件的无障碍组件描述为测试文本。
  25. SaveButton()
  26. .accessibilityDescription("test text for description")
  27. .id('btn5')
  28. }
  29. .width('100%')
  30. }
  31. .height('100%')
  32. }
  33. }