openharmony 鸿蒙 js-apis-arkui-layoutAlgorithm

2026-08-25 浏览 (1)

LayoutAlgorithm

DynamicLayout组件支持的布局算法详细信息。

说明:

本模块首批接口从API version 24开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import { LayoutAlgorithm, CustomLayoutAlgorithm, RowLayoutAlgorithm, ColumnLayoutAlgorithm, StackLayoutAlgorithm, GridLayoutAlgorithm } from '@kit.ArkUI';

LayoutAlgorithm

动态布局容器DynamicLayout的布局算法基础类型。

说明:

该类型变量可以赋值具体的布局算法类对象,如CustomLayoutAlgorithm类对象、RowLayoutAlgorithm类对象等。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

CustomLayoutAlgorithm

自定义布局算法类。

说明:

CustomLayoutAlgorithm类对象可以赋值给LayoutAlgorithm类型变量,作为DynamicLayout组件的入参指定布局算法。

装饰器类型: @ObservedV2

onMeasure

onMeasure(self: FrameNode, constraint: LayoutConstraint): void

通过重写此函数,开发者可以自定义测量子组件的大小。ArkUI框架会在动态布局组件确定尺寸时,将该组件对应的FrameNode和布局约束通过onMeasure传递给开发者。不允许在onMeasure函数中改变状态变量。

说明:

在此函数中,开发者可以调用FrameNodegetChild()方法获取子组件FrameNode,调用FrameNodemeasure()方法测量子组件大小,参考DynamicLayout组件示例1(自定义布局算法实现瀑布流布局)

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

参数:

参数名类型必填说明
selfFrameNode动态布局组件在组件树上的实体节点。
constraintLayoutConstraint动态布局组件进行测量时使用的布局约束。

onLayout

onLayout(self: FrameNode, position: Position): void

通过重写此函数,开发者可以自定义排列子组件的位置。ArkUI框架会在动态布局组件确定位置时,将该组件对应的FrameNode和布局位置通过onLayout传递给开发者。不允许在onLayout函数中改变状态变量。

说明:

在此函数中,开发者可以调用FrameNodegetChild()方法获取子组件FrameNode,调用FrameNodelayout()方法设置子组件位置,参考DynamicLayout组件示例1(自定义布局算法实现瀑布流布局)

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

参数:

参数名类型必填说明
selfFrameNode动态布局组件在组件树上的实体节点。
positionPosition动态布局组件进行布局时使用的位置信息。

示例:

请参考DynamicLayout组件示例1(自定义布局算法实现瀑布流布局)

RowLayoutAlgorithm

水平方向线性布局算法类。

说明:

RowLayoutAlgorithm类对象可以赋值给LayoutAlgorithm类型变量,作为DynamicLayout组件的入参指定布局算法。

装饰器类型: @ObservedV2

属性

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

名称类型只读可选说明
spaceLengthMetrics横向布局元素水平方向间距。
默认值:LengthMetrics.vp(0)
非法值:按默认值处理。
装饰器类型:@Trace
alignItemsVerticalAlign所有子组件在垂直方向上的对齐格式。
默认值:VerticalAlign.Center
非法值:按默认值处理。
装饰器类型:@Trace
justifyContentFlexAlign所有子组件在水平方向上的对齐格式。
默认值:FlexAlign.Start
非法值:按默认值处理。
装饰器类型:@Trace
isReverseboolean子组件在水平方向上的排列是否反转。取值为true表示子组件在水平方向上反转排列,由于水平方向受通用属性direction影响,如果direction属性生效,再做一次反转。取值为false表示子组件在水平方向上正序排列。
默认值:false
非法值:按默认值处理。
装饰器类型:@Trace

constructor

constructor(option?: RowLayoutAlgorithmOptions)

水平方向线性布局算法类的构造函数。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

参数:

参数名类型必填说明
optionRowLayoutAlgorithmOptions水平方向线性布局算法的构造入参,设置布局算法的间距、主轴对齐方式、交叉轴对齐方式及主轴排列方向。

示例:

请参考DynamicLayout组件示例2(切换布局算法)

RowLayoutAlgorithmOptions对象说明

设置水平方向线性布局算法的间距、主轴对齐方式、交叉轴对齐方式及主轴排列方向。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

名称类型只读可选说明
spaceLengthMetrics横向布局元素水平方向间距。
默认值:LengthMetrics.vp(0)
非法值:按默认值处理。
alignItemsVerticalAlign所有子组件在垂直方向上的对齐格式。
默认值:VerticalAlign.Center
非法值:按默认值处理。
justifyContentFlexAlign所有子组件在水平方向上的对齐格式。
默认值:FlexAlign.Start
非法值:按默认值处理。
isReverseboolean子组件在水平方向上的排列是否反转。取值为true表示子组件在水平方向上反转排列,由于水平方向受通用属性direction影响,如果direction属性生效,再做一次反转。取值为false表示子组件在水平方向上正序排列。
默认值:false
非法值:按默认值处理。

ColumnLayoutAlgorithm

垂直方向线性布局算法类。

说明:

ColumnLayoutAlgorithm类对象可以赋值给LayoutAlgorithm类型变量,作为DynamicLayout组件的入参指定布局算法。

装饰器类型: @ObservedV2

属性

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

名称类型只读可选说明
spaceLengthMetrics纵向布局元素垂直方向间距。
默认值:LengthMetrics.vp(0)
非法值:按默认值处理。
装饰器类型:@Trace
alignItemsHorizontalAlign所有子组件在水平方向上的对齐格式。
默认值:HorizontalAlign.Center
非法值:按默认值处理。
装饰器类型:@Trace
justifyContentFlexAlign所有子组件在垂直方向上的对齐格式。
默认值:FlexAlign.Start
非法值:按默认值处理。
装饰器类型:@Trace
isReverseboolean子组件在垂直方向上的排列是否反转。取值为true表示子组件在垂直方向上反转排列。取值为false表示子组件在垂直方向上正序排列。
默认值:false
非法值:按默认值处理。
装饰器类型:@Trace

constructor

constructor(option?: ColumnLayoutAlgorithmOptions)

垂直方向线性布局算法类的构造函数。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

参数:

参数名类型必填说明
optionColumnLayoutAlgorithmOptions垂直方向线性布局算法的构造入参,设置布局算法的间距、主轴对齐方式、交叉轴对齐方式及主轴排列方向。

示例:

请参考DynamicLayout组件示例2(切换布局算法)

ColumnLayoutAlgorithmOptions对象说明

设置垂直方向线性布局算法的间距、主轴对齐方式、交叉轴对齐方式及主轴排列方向。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

名称类型只读可选说明
spaceLengthMetrics纵向布局元素垂直方向间距。
默认值:LengthMetrics.vp(0)
非法值:按默认值处理。
alignItemsHorizontalAlign所有子组件在水平方向上的对齐格式。
默认值:HorizontalAlign.Center
非法值:按默认值处理。
justifyContentFlexAlign所有子组件在垂直方向上的对齐格式。
默认值:FlexAlign.Start
非法值:按默认值处理。
isReverseboolean子组件在垂直方向上的排列是否反转。取值为true表示子组件在垂直方向上反转排列。取值为false表示子组件在垂直方向上正序排列。
默认值:false
非法值:按默认值处理。

StackLayoutAlgorithm

堆叠布局算法类。

说明:

StackLayoutAlgorithm类对象可以赋值给LayoutAlgorithm类型变量,作为DynamicLayout组件的入参指定布局算法。

装饰器类型: @ObservedV2

属性

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

名称类型只读可选说明
alignContentLocalizedAlignment设置子组件在堆叠布局算法中对齐格式。
默认值:LocalizedAlignment.CENTER
非法值:按默认值处理。
装饰器类型:@Trace

constructor

constructor(option?: StackLayoutAlgorithmOptions)

堆叠布局算法类的构造函数。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

参数:

参数名类型必填说明
optionStackLayoutAlgorithmOptions堆叠布局算法的构造入参,设置九宫格对齐格式。

示例:

请参考DynamicLayout组件示例2(切换布局算法)

StackLayoutAlgorithmOptions对象说明

设置堆叠布局算法的对齐方式。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

名称类型只读可选说明
alignContentLocalizedAlignment设置子组件在堆叠布局算法中对齐格式。
默认值:LocalizedAlignment.CENTER
非法值:按默认值处理。

GridLayoutAlgorithm

网格布局算法类。

说明:

GridLayoutAlgorithm类对象可以赋值给LayoutAlgorithm类型变量,作为DynamicLayout组件的入参指定布局算法。

装饰器类型: @ObservedV2

属性

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

名称类型只读可选说明
columnsTemplatestring |ItemFillPolicy设置当前网格布局的列数。
默认值:'1fr'
非法值:按默认值处理。
装饰器类型:@Trace
columnsGapLengthMetrics列与列之间的间距。
默认值:LengthMetrics.vp(0)
非法值:按默认值处理。
装饰器类型:@Trace
rowsGapLengthMetrics行与行之间的间距。
默认值:LengthMetrics.vp(0)
非法值:按默认值处理。
装饰器类型:@Trace

constructor

constructor(option?: GridLayoutAlgorithmOptions)

网格布局算法类的构造函数。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

参数:

参数名类型必填说明
optionGridLayoutAlgorithmOptions网格布局算法的构造入参,设置网格布局的列数、列间距、行间距。

示例:

请参考DynamicLayout组件示例2(切换布局算法)

GridLayoutAlgorithmOptions对象说明

设置网格布局算法的列数模板、列间距、行间距。

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

卡片能力: 从API version 24开始,该接口支持在ArkTS卡片中使用。

原子化服务API: 从API version 24开始,该接口支持在原子化服务中使用。

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

名称类型只读可选说明
columnsTemplatestring |ItemFillPolicy设置当前网格布局的列数。
默认值:'1fr'
非法值:按默认值处理。
columnsGapLengthMetrics列与列之间的间距。
默认值:LengthMetrics.vp(0)
非法值:按默认值处理。
rowsGapLengthMetrics行与行之间的间距。
默认值:LengthMetrics.vp(0)
非法值:按默认值处理。

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 arkts-apis-uicontext-contextmenucontroller

openharmony 鸿蒙 errorcode-canvas

openharmony 鸿蒙 capi-oh-nativexcomponent-native-xcomponent-oh-nativexcomponent

openharmony 鸿蒙 errorcode-bindSheet

openharmony 鸿蒙 js-apis-arkui-uiExtension-sys

openharmony 鸿蒙 capi-arkui-accessibility-arkui-accessibilityeventinfo

openharmony 鸿蒙 capi-arkui-rendernodeutils

openharmony 鸿蒙 capi-native-node-h-nodeattributetype-layoutcomponent

openharmony 鸿蒙 js-apis-arkui-node

openharmony 鸿蒙 capi-native-node-h

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/nPmYAK5A