相对布局 (RelativeContainer)
RelativeContainer 是 ArkUI 中一种基于相对定位规则的布局容器,允许子组件通过与其他组件或容器边缘的相对关系来确定自身位置。每个子组件需通过 id 标识,并通过 alignRules 属性声明其相对于其他元素的对齐规则(如'位于 A 的右侧'、'底部对齐 B'等)。
尽管功能强大,但 RelativeContainer 在实际项目中使用频率较低,主要原因包括:
- 学习成本高:需理解复杂的对齐规则链;
- 维护难度大:组件间耦合紧密,修改一处可能影响多处布局;
- 响应式支持弱:难以适配多尺寸屏幕;
- 性能开销:布局计算复杂度高于线性或弹性布局。
因此,除非有特殊需求(如自定义复杂仪表盘、拖拽编辑器、游戏 UI 等),一般推荐优先使用 Column、Row、Flex 或 Stack。
参考文档:相对布局
栅格布局 (GridRow / GridCol)
栅格布局是构建响应式、跨设备适配界面的核心方案。ArkTS 通过 GridRow(行容器)与 GridCol(列单元)组合,实现类似 Bootstrap 的 12 栅格系统,支持断点控制、列数自适应、间距调节、元素排序等能力,特别适用于卡片列表、仪表盘、表单布局等场景。
栅格容器 GridRow
GridRow 定义了一行栅格的上下文,其内部只能包含 GridCol 子组件。它通过断点(Breakpoint)机制,根据设备屏幕宽度自动切换布局策略。
以下示例展示了自定义断点配置下的响应式行为:
GridRow({ breakpoints:{ sm:4, // 小屏:4 列
md:8, // 中屏:8 列
lg:12 // 大屏:12 列
}}){/* GridCol 子项 */}
💡 预览说明:由于模拟器设备有限,以下截图均基于 DevEco Studio 自带预览器,展示不同断点下的布局效果。






















