鸿蒙Flex使用

以下是链接中关于 ​HarmonyOS ArkUI弹性布局(Flex)​​ 的核心内容总结:


​1. 基本概念​

  • 主轴:子元素的默认排列方向轴线(起始点 → 结束点)。
  • 交叉轴:垂直于主轴的轴线。
  • 主轴尺寸:子元素在主轴方向的尺寸。
  • 交叉轴尺寸:子元素在交叉轴方向的尺寸。

​2. 布局方向(direction)​​

  • FlexDirection.Row(默认):水平排列,从左到右。
  • FlexDirection.RowReverse:水平反向排列,从右到左。
  • FlexDirection.Column:垂直排列,从上到下。
  • FlexDirection.ColumnReverse:垂直反向排列,从下到上。

​3. 布局换行(wrap)​​

  • FlexWrap.NoWrap(默认):不换行,超出则压缩子元素宽度。
  • FlexWrap.Wrap:换行,按主轴方向排列多行。
  • FlexWrap.WrapReverse:换行,按主轴反方向排列。

​4. 主轴对齐方式(justifyContent)​​

  • FlexAlign.Start:起始端对齐(左对齐)。
  • FlexAlign.Center:居中对齐。
  • FlexAlign.End:结束端对齐(右对齐)。
  • FlexAlign.SpaceBetween:两端对齐,子元素间距相等。
  • FlexAlign.SpaceAround:子元素间距相等,首尾间距为间距一半。
  • FlexAlign.SpaceEvenly:子元素及首尾间距完全相等。

​5. 交叉轴对齐方式​

​​(1) 容器设置(alignItems)​​

  • ItemAlign.Start:顶部对齐。
  • ItemAlign.Center:居中对齐。
  • ItemAlign.End:底部对齐。
  • ItemAlign.Stretch:拉伸填充(未设尺寸时生效)。
  • ItemAlign.Baseline:文本基线对齐。

​​(2) 子元素设置(alignSelf)​​

  • 优先级高于容器的 alignItems,可单独覆盖对齐方式。

​​(3) 多行对齐(alignContent)​​

  • 控制多行布局在交叉轴的对齐方式(如 SpaceBetween、SpaceEvenly)。

​6. 自适应拉伸​

  • **flexBasis**:设置主轴基准尺寸(优先级高于 width/height)。
  • **flexGrow**:按比例分配父容器剩余空间。
  • **flexShrink**:按比例压缩子元素以适应空间不足。

​7. 典型场景示例​

scss 复制代码
Flex({
  direction: FlexDirection.Row,
  wrap: FlexWrap.NoWrap,
  justifyContent: FlexAlign.SpaceBetween, // 主轴两端对齐
  alignItems: ItemAlign.Center // 交叉轴居中
}) {
  Text('1').width('30%').height(50)
  Text('2').width('30%').height(50)
  Text('3').width('30%').height(50)
}
.height(70)
.width('90%')
.backgroundColor('#AFEEEE')

​效果​:子元素水平均匀分布,垂直居中,高度固定。


​关键点总结​

​分类​ ​属性​ ​作用​
布局方向 direction 控制主轴方向(水平/垂直)
换行 wrap 单行/多行布局控制
主轴对齐 justifyContent 子元素在主轴的对齐方式
交叉轴对齐 alignItems 所有子元素的统一对齐方式
子元素交叉轴对齐 alignSelf 单个子元素的对齐方式(覆盖父容器设置)
自适应 flexGrow/flexShrink 分配剩余空间/压缩空间

​适用场景​

  • 导航栏均匀分布、卡片布局、表单排列等需要灵活控制子元素对齐与分布的界面。

此文档详细说明了 Flex 布局在 HarmonyOS ArkUI 中的完整能力,开发者可通过调整参数实现复杂响应式布局。

相关推荐
威哥爱编程10 小时前
HarmonyOS 7 自由多窗实战:supportWindowMode + 断点布局,大屏多任务主动接管
harmonyos·arkts
威哥爱编程10 小时前
HarmonyOS 7 应用接续实战:continuable + onContinue 跨设备无缝流转,手机编辑平板接着搞
harmonyos·arkts
威哥爱编程11 小时前
HarmonyOS 7 视觉 AI 进阶实战:人脸检测 + 通用文字识别(OCR)两步接入
harmonyos
李游Leo18 小时前
HarmonyOS 7 API 26 升级适配实战:API Change Assistant、targetSDKVersion 与兼容性回归
harmonyos
OH_TPC18 小时前
HarmonyOS APP开发---"智泊"智能停车App,需要用到这个库
harmonyos
用户1179104883318 小时前
AI粘贴多行需求为什么会误执行?hmharness安全粘贴拆解 GitHub:swsgbl/hmharness
ai编程·harmonyos
用户09340777351418 小时前
HarmonyOS WPS Open SDK 实践:从 HAR 集成到 OpenFileRequest 最小闭环
typescript·harmonyos
威哥爱编程1 天前
HarmonyOS 7 Fast Kit 算法加速实战:四大核心能力,把算力从系统里"借"出来
harmonyos·arkts
威哥爱编程1 天前
HarmonyOS 7 游戏快启实战:Graphics Accelerate Kit 内存镜像秒级启动 + 预启动,把读条变成"秒进"
harmonyos·arkts
木子雨廷1 天前
第 19 天|Preferences:轻量缓存与状态恢复
harmonyos