鸿蒙中的flex布局和平常前端开发的一样吗?
在鸿蒙(HarmonyOS)开发中,使用 Flex 布局可通过 ArkUI 的 Flex
容器组件实现。以下是核心用法和代码示例:
1. 基础结构
Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center }) {
// 子组件
}
.width('100%')
.height('100%')
2. 常用属性
direction: 主轴方向
FlexDirection.Row(水平) | Column(垂直)
justifyContent: 主轴对齐方式
FlexAlign.Start | Center | End | SpaceBetween | SpaceAround
alignItems: 交叉轴对齐方式
ItemAlign.Auto | Start | Center | End | Baseline | Stretch
wrap: 换行方式
FlexWrap.NoWrap | Wrap | WrapReverse
3. 子组件属性
Text('Item1')
.flexGrow(1) // 扩展比例
.flexShrink(0) // 收缩比例
.alignSelf(ItemAlign.End) // 单独对齐方式
4. 完整示例
Flex({ direction: FlexDirection.Row, wrap: FlexWrap.Wrap }) {
Text('Item1').flexGrow(1).backgroundColor(0xE1F5FE)
Text('Item2').flexShrink(0).backgroundColor(0xF0F4C3)
Text('Item3').alignSelf(ItemAlign.Center).backgroundColor(0xFFCDD2)
}
.justifyContent(FlexAlign.SpaceBetween)
.padding(10)
.width('100%')
5. 特殊场景
.flexGrow(1)
Blank
组件使用@ohos.mediaquery
监听屏幕变化动态修改 Flex 参数注意:鸿蒙 3.0+ 版本对 Flex 布局进行了性能优化,推荐使用 Column
/Row
组件替代简单布局场景。
不太一样。使用 Flex 布局的基本步骤和常见属性设置:
1、创建flex容器:首先要设置为容器。例如在 TS 中:
2、设置主轴方向(flexDirection):决定主轴的方向,即子元素的排列方向:
3、设置主轴上的对齐方式(justifyContent):定义了子元素在主轴上的对齐方式:
4、设置交叉轴上的对齐方式(alignItems):定义了子元素在交叉轴上的对齐方式:
5、设置子元素的伸缩性(flexGrow):定义子元素的伸缩性,即当主轴有剩余空间时,子元素如何分配这些空间。值为数字,默认为 0,表示不伸缩。