layout
layout 模块提供布局管理功能,包含基础布局、弹性布局与网格布局等布局策略。
Class Summary
OHOS::Layout
布局基类,定义布局方向等基本数据类型与操作。
- 构造:无
-
成员函数:
接口名称 功能简述 SetLayoutDirection 设置布局方向 -
使用包含头文件:
#include "layout.h" - 声明头文件:
middleware/services/gui/uikit/ui/interfaces/kits/layout/layout.h - 公有运算符:无
- 继承关系:UIViewGroup
- 嵌套类型:无
- 模板形参:无
OHOS::FlexLayout
弹性布局容器,支持对子视图进行自适应排列。
- 构造:无
-
成员函数:
接口名称 功能简述 SetMajorAxisAlign 设置主轴对齐模式 SetSecondaryAxisAlign 设置交叉轴对齐模式 SetFlexWrap 设置是否支持换行 LayoutChildren 按预设排列模式布局所有子视图 -
使用包含头文件:
#include "flex_layout.h" - 声明头文件:
middleware/services/gui/uikit/ui/interfaces/kits/layout/flex_layout.h - 公有运算符:无
- 继承关系:Layout
- 嵌套类型:无
- 模板形参:无
OHOS::GridLayout
网格布局容器,支持对子视图进行网格排列。
- 构造:无
-
成员函数:
接口名称 功能简述 SetRows 设置网格行数 SetCols 设置网格列数 LayoutChildren 按预设排列模式布局所有子视图 -
使用包含头文件:
#include "grid_layout.h" - 声明头文件:
middleware/services/gui/uikit/ui/interfaces/kits/layout/grid_layout.h - 公有运算符:无
- 继承关系:Layout
- 嵌套类型:无
- 模板形参:无
OHOS::ListLayout
列表布局容器,支持水平或垂直方向的列表排列。
- 构造:
ListLayout(const uint8_t direction = VERTICAL) -
成员函数:
接口名称 功能简述 ListLayout 构造 ListLayout 实例并指定列表方向 SetDirection 设置列表方向 GetDirection 获取列表方向 -
使用包含头文件:
#include "list_layout.h" - 声明头文件:
middleware/services/gui/uikit/ui/interfaces/kits/layout/list_layout.h - 公有运算符:无
- 继承关系:FlexLayout
- 嵌套类型:无
- 模板形参:无
Functions
OHOS::Layout
SetLayoutDirection
void SetLayoutDirection(const DirectionType& direction)
功能说明
- 核心用途:设置布局方向,决定子视图的排列方向
- 设计目的:为布局容器提供统一的排列方向配置接口
- 使用场景:在布局子视图前指定排列方向(从左到右、从右到左、从上到下、从下到上)
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| direction | const DirectionType& | 入参只读引用,布局方向 | LAYOUT_HOR(0):从左到右;LAYOUT_HOR_R(1):从右到左;LAYOUT_VER(2):从上到下;LAYOUT_VER_R(3):从下到上 |
OHOS::FlexLayout
SetMajorAxisAlign
void SetMajorAxisAlign(const AlignType& align)
功能说明
- 核心用途:设置主轴(布局方向所在轴)的对齐模式,子视图按此模式在主轴方向排列
- 设计目的:提供弹性布局的主轴对齐配置能力
- 使用场景:需要在主轴方向控制子视图间距与对齐方式时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| align | const AlignType& | 入参只读引用,主轴对齐模式 | ALIGN_START(0):起始对齐;ALIGN_END(1):末尾对齐;ALIGN_CENTER(2):居中对齐;ALIGN_EVENLY(3):等间距排列;ALIGN_AROUND(4):两端半间距排列;ALIGN_BETWEEN(5):两端无间距排列 |
SetSecondaryAxisAlign
void SetSecondaryAxisAlign(const AlignType& align)
功能说明
- 核心用途:设置交叉轴(与布局方向垂直的轴)的对齐模式
- 设计目的:提供弹性布局的交叉轴对齐配置能力
- 使用场景:需要在交叉轴方向控制子视图对齐方式时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| align | const AlignType& | 入参只读引用,交叉轴对齐模式 | ALIGN_START(0):起始对齐;ALIGN_CENTER(2):居中对齐;ALIGN_END(1):末尾对齐 |
SetFlexWrap
void SetFlexWrap(uint8_t wrap)
功能说明
- 核心用途:设置弹性布局是否支持换行排列
- 设计目的:控制子视图在空间不足时是否换行显示
- 使用场景:需要让子视图在单行空间不足时自动换行排列
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| wrap | uint8_t | 换行属性 | FlexLayout::NOWRAP(0):不换行;FlexLayout::WRAP(1):换行 |
LayoutChildren
void LayoutChildren(bool needInvalidate = false) override
功能说明
- 核心用途:按预设排列模式布局所有子视图
- 设计目的:根据主轴对齐、交叉轴对齐、换行等配置对子视图进行弹性排列
- 使用场景:配置完布局参数后调用以执行实际布局计算与子视图位置更新
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| needInvalidate | bool | 布局完成后是否刷新无效区域 | true:刷新无效区域;false:不刷新 |
OHOS::GridLayout
SetRows
void SetRows(const uint16_t& rows)
功能说明
- 核心用途:设置网格布局的行数
- 设计目的:指定网格容器中子视图按行划分的数量
- 使用场景:在布局子视图前指定网格的行数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| rows | const uint16_t& | 入参只读引用,网格行数 | 0 ~ 65535 |
SetCols
void SetCols(const uint16_t& cols)
功能说明
- 核心用途:设置网格布局的列数
- 设计目的:指定网格容器中子视图按列划分的数量
- 使用场景:在布局子视图前指定网格的列数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| cols | const uint16_t& | 入参只读引用,网格列数 | 0 ~ 65535 |
LayoutChildren
void LayoutChildren(bool needInvalidate = false) override
功能说明
- 核心用途:按预设行列数及布局方向对子视图进行网格排列
- 设计目的:根据行列配置对子视图执行网格布局计算与位置更新
- 使用场景:配置完行列数与布局方向后调用以执行实际网格布局
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| needInvalidate | bool | 布局完成后是否刷新无效区域 | true:刷新无效区域;false:不刷新 |
OHOS::ListLayout
ListLayout
ListLayout(const uint8_t direction = VERTICAL)
功能说明
- 核心用途:构造 ListLayout 实例并指定列表方向
- 设计目的:创建列表布局容器,根据方向参数初始化布局方向
- 使用场景:需要创建水平或垂直列表布局时使用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| direction | const uint8_t | 列表方向 | ListLayout::HORIZONTAL(0):水平列表;ListLayout::VERTICAL(1):垂直列表 |
SetDirection
void SetDirection(uint8_t direction)
功能说明
- 核心用途:设置列表方向,水平方向重新计算 X 坐标,垂直方向重新计算 Y 坐标
- 设计目的:允许运行时动态切换列表排列方向
- 使用场景:需要在运行时更改列表方向时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| direction | uint8_t | 列表方向 | ListLayout::HORIZONTAL(0):水平列表;ListLayout::VERTICAL(1):垂直列表 |
GetDirection
uint8_t GetDirection()
功能说明
- 核心用途:获取当前列表方向
- 设计目的:提供列表方向查询能力
- 使用场景:需要读取当前列表布局方向时调用
返回值
- 返回类型:
uint8_t
返回当前列表方向
| 返回值 | 触发场景 |
|---|---|
| ListLayout::HORIZONTAL(0) | 列表方向为水平 |
| ListLayout::VERTICAL(1) | 列表方向为垂直 |
Type definitions
DirectionType
使用说明:用于 SetLayoutDirection 接口的入参类型,表示布局方向
AlignType
使用说明:用于 SetMajorAxisAlign 和 SetSecondaryAxisAlign 接口的入参类型,表示对齐模式