鸿蒙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)​

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

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 中的完整能力,开发者可通过调整参数实现复杂响应式布局。

相关推荐
想不明白的过度思考者5 小时前
鸿蒙系统:不止于“手机OS”的全场景智能操作系统
华为·智能手机·harmonyos
搬砖的小码农_Sky21 小时前
如何将安卓应用迁移到鸿蒙?
android·华为·harmonyos
搬砖的小码农_Sky21 小时前
鸿蒙应用开发和安卓应用开发的区别
android·华为·harmonyos
管家婆客服中心1 天前
华为纯血鸿蒙系统怎么安装物联通
华为·harmonyos
ChinaDragon1 天前
HarmonyOS:固定样式弹出框
harmonyos
i建模1 天前
鸿蒙与iOS跨平台开发方案全解析
ios·华为·harmonyos
ChinaDragon1 天前
HarmonyOS:不依赖UI组件的全局自定义弹出框 (openCustomDialog)
harmonyos
熊猫钓鱼>_>1 天前
鸿蒙开发入门实战:从零构建你的第一个HarmonyOS应用(ArkTS版)
华为·harmonyos
安卓开发者1 天前
鸿蒙NEXT安全单元访问开发指南:构建可信应用的安全基石
安全·华为·harmonyos
ChinaDragonDreamer2 天前
HarmonyOS:固定样式弹出框
harmonyos·鸿蒙