跳转至

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

using DirectionType = uint8_t;

使用说明:用于 SetLayoutDirection 接口的入参类型,表示布局方向

AlignType

using AlignType = uint8_t;

使用说明:用于 SetMajorAxisAlignSetSecondaryAxisAlign 接口的入参类型,表示对齐模式