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

相关推荐
爱笑的眼睛114 小时前
HarmonyOS 应用开发新范式:深入探索 Stage 模型与 ArkUI 声明式开发
华为·harmonyos
祥睿夫子8 小时前
零基础搞定 ArkTS 类与对象!保姆级教程:定义→创建→测试全流程 + 代码示例
harmonyos
程序员潘Sir11 小时前
HarmonyOS实现快递APP自动识别地址
harmonyos·鸿蒙
萌虎不虎11 小时前
【鸿蒙(openHarmony)自定义音频播放器的开发使用说明】
华为·音视频·harmonyos
李洋-蛟龙腾飞公司11 小时前
HarmonyOSAI编程万能卡片生成(一)
华为·ai编程·harmonyos
HarmonyOS_SDK13 小时前
打破场景边界,支付宝联合实况窗提供全新出行服务体验
harmonyos
安卓开发者13 小时前
鸿蒙NEXT应用数据持久化全面解析:从用户首选项到分布式数据库
数据库·分布式·harmonyos
森之鸟14 小时前
开发中使用——鸿蒙播放本地mp3文件
华为·harmonyos
前端世界15 小时前
HarmonyOS 数据处理性能优化:算法 + 异步 + 分布式实战
算法·性能优化·harmonyos