ArkUI动态布局示例
介绍
本示例展示了ArkUI中ArkUI指南文档的开发示例。通过本示例,开发者可以学习如何使用DynamicLayout组件构建基本布局、如何实现DynamicLayou组件的自定义布局算法、如何动态切换DynamicLayout组件的布局算法。该工程中展示的代码详细描述可查链接动态布局。
1. [线性布局算法示例 (Row/Column)]
效果预览
| 列表 | 示例 |
|---|---|
![]() |
![]() |
2. [堆叠布局算法示例 (Stack)]
效果预览
| 列表 | 示例 |
|---|---|
![]() |
![]() |
3. [网格栅格布局算法示例 (Grid)]
效果预览
| 列表 | 示例 |
|---|---|
![]() |
![]() |
4. [自定义布局算法示例]
效果预览
| 列表 | 示例 |
|---|---|
![]() |
![]() |
5. [布局算法切换示例]
效果预览
| 列表 | 示例 |
|---|---|
![]() |
![]() |
使用说明
-
在主界面,可以点击对应卡片,选择需要参考的布局示例。
-
进入线性布局、堆叠布局、网格布局示例,学习如何设置DynamicLayout组件的布局算法。
-
进入自定义布局算法示例,学习如何实现瀑布流、网格、标签云等自定义布局。
-
进入算法切换示例,学习如何根据不同条件动态切换DynamicLayout组件的布局算法。
工程目录
entry/src/main/ets/
|---entryability
|---pages
| |---MainPage.ets // 应用主页面
| |---basic // 基础示例
| | |---CreateDynamicLayout.ets // 创建动态布局示例
| |---linearlayout // 线性布局算法示例
| | |---RowLayoutAlgorithm.ets // 水平线性布局算法
| | |---ColumnLayoutAlgorithm.ets // 垂直线性布局算法
| |---stacklayout // 堆叠布局算法示例
| | |---StackLayoutAlgorithm.ets // 堆叠布局算法
| |---gridlayout // 网格布局算法示例
| | |---GridLayoutAlgorithm.ets // 网格布局算法
| |---customlayout // 自定义布局算法示例
| | |---CustomLayoutIndex.ets // 自定义布局索引页
| | |---CustomLayoutBasic.ets // 自定义布局算法实现指导
| | |---WaterFlowLayout.ets // 自定义瀑布流
| | |---GridLayout.ets // 自定义网格布局
| | |---TagCloudLayout.ets // 自定义标签云布局
| |---responsivelayout // 响应式布局切换示例
| | |---ResponsiveLayoutIndex.ets // 响应式布局索引页
| | |---ChangeLayoutAlgorithm.ets // 通过状态变量切换布局算法
| | |---ChangeLayoutWithConditionVariable.ets // 通过条件运算符切换布局算法
| | |---ChangeAlgorithmProperties.ets // 通过修改算法属性触发重新布局
| | |---ChangeLayoutWithMediaQuery.ets // 响应式布局算法切换
| | |---ReserveChildState.ets // 布局切换保持子组件状态
entry/src/ohosTest/
|---ets
| |---DynamicLayoutTest.ets // 动态布局示例测试代码
具体实现
-
启动app进入主界面,选择线性布局算法、堆叠布局算法、网格布局算法、自定义布局算法示例或者响应式布局切换示例,然后点击选择详细的示例参考。
-
线性布局算法示例展示了如何使用DynamicLayout组件和RowLayoutAlgorithm/ColumnLayoutAlgorithm实现水平和垂直方向的线性布局,源码参考示例场景entry/src/main/ets/pages/linearlayout/
-
堆叠布局算法示例展示了如何使用DynamicLayout组件和StackLayoutAlgorithm实现堆叠布局,源码参考示例场景entry/src/main/ets/pages/stacklayout/
-
网格布局算法示例展示了如何使用DynamicLayout组件和GridLayoutAlgorithm实现网格布局,源码参考示例场景entry/src/main/ets/pages/gridlayout/
-
自定义布局算法示例展示了如何实现瀑布流、网格、标签云等自定义布局算法,包括布局算法的基本实现、子组件的测量和定位等,源码参考示例场景entry/src/main/ets/pages/customlayout/
-
响应式布局切换示例展示了如何通过状态变量、条件运算符、MediaQuery等方式动态切换布局算法,以及如何在布局切换时保持子组件状态,源码参考示例场景entry/src/main/ets/pages/responsivelayout/
相关权限
不涉及。
依赖
- @ohos/lottie: ^2.0.24
约束与限制
-
本示例仅支持标准系统上运行,支持设备:华为手机。
-
HarmonyOS系统:HarmonyOS 6.1.1 Release及以上。
-
DevEco Studio版本:6.1.1 Release及以上。
-
HarmonyOS SDK版本:HarmonyOS 6.1.1 Release SDK及以上。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo ArkUISample/DynamicLayout > .git/info/sparse-checkout
git remote add origin https://gitcode.com/harmonyos_samples/guide-snippets.git
git pull origin master







