当前位置: 首页 > news >正文

鸿蒙 ArkTS 七大布局组件详解

1. Column 垂直线性布局

作用

子组件从上至下垂直排列,页面最常用基础容器。

核心参数

space:子组件间距;justifyContent:垂直分布;alignItems:水平对齐

示例代码

@Entry @Component struct ColumnDemo { build() { Column({ space: 15 }) { Text("标题") .fontSize(20) Text("正文内容") Button("提交") } .width("100%") .padding(20) .justifyContent(FlexAlign.Center) // 垂直居中 .alignItems(HorizontalAlign.Start) // 左对齐 } }

2. Row 水平线性布局

作用

子组件从左至右水平排列,实现一行多元素排版。

核心参数

space:元素间距;主轴 / 交叉轴对齐属性同 Column

示例代码

@Entry @Component struct RowDemo { build() { Row({ space: 10 }) { Text("选项1") .width(80) .height(40) .backgroundColor("#eee") Text("选项2") .width(80) .height(40) .backgroundColor("#eee") Text("选项3") .width(80) .height(40) .backgroundColor("#eee") } .width("100%") .padding(10) } }

3. Stack 层叠布局

作用

子组件叠加堆叠,后写组件覆盖上层;适合背景 + 浮层、角标场景。

核心参数

alignContent:统一对齐;子组件.zIndex()控制层级(数值越大越顶层)

示例代码

@Entry @Component struct StackDemo { build() { Stack({ alignContent: Alignment.Center }) { // 底层背景 Rect() .width(200) .height(120) // 中层文字 Text("主图") .fontSize(22) .fontColor(Color.White) .zIndex(1) // 顶层角标 Text("热") .fontSize(12) .backgroundColor(Color.Red) .fontColor(Color.White) .padding(4) .position({ x: 160, y: 10 }) .zIndex(2) } } }

4. Flex 弹性布局

作用

超灵活自适应布局,支持自动换行、均分剩余空间,复杂流式排版首选。

核心参数

direction:主轴方向;wrap:是否换行;justifyContent主轴分布

示例代码

@Entry @Component struct FlexDemo { build() { Flex({ direction: FlexDirection.Row, wrap: FlexWrap.Wrap, // 自动换行 justifyContent: FlexAlign.SpaceAround }) { ForEach([1,2,3,4,5], (item:number)=>{ Text(`标签${item}`) .width(100) .height(40) .backgroundColor("#f0f0f0") .margin({ bottom:10 }) }) } .width("100%") .padding(10) } }

5. RelativeContainer 相对布局

作用

通过 ID 互相参照定位,适合组件位置互相依赖的复杂页面。

核心 API

id("xxx")给组件标记;.alignRules()设置相对对齐规则

示例代码

@Entry @Component struct RelativeDemo { build() { RelativeContainer() .width(300) .height(300) .backgroundColor("#f5f5f5") { // 基准方块 Rect() .id("base") .width(80) .height(80) .fill("#2196F3") .alignRules({ centerX: { anchor: "__container__", align: HorizontalAlign.Center }}) // 方块在基准下方 Rect() .id("down") .width(60) .height(60) .fill("#4CAF50") .alignRules({ top: { anchor: "base", align: VerticalAlign.Bottom }}) } } }

6. Swiper 轮播布局

作用

横向滑动切换多页面,用于首页 Banner、图片轮播。

核心参数

index默认页;loop循环播放;autoPlay自动轮播;interval切换间隔

示例代码

@Entry @Component struct SwiperDemo { @State curIndex: number = 0 build() { Swiper() { ForEach([1,2,3], (i:number)=>{ Rect() .width("100%") .height(160) .fill(i%2 ? "#FF9800":"#9C27B0") }) } .index(this.curIndex) .loop(true) .autoPlay(true) .interval(3000) .width("100%") .height(160) } }

7. Tabs 标签页布局

作用

顶部 / 底部切换多内容页面,常用于首页分栏、分类导航。

核心参数

barPosition标签栏位置(Start 顶部 / End 底部);onChange切换监听

示例代码

@Entry @Component struct TabsDemo { build() { Tabs({ barPosition: BarPosition.Start }) { TabContent() { Text("首页内容").fontSize(24) } .tabBar(Text("首页").fontSize(16)) TabContent() { Text("分类内容").fontSize(24) } .tabBar(Text("分类").fontSize(16)) TabContent() { Text("我的页面").fontSize(24) } .tabBar(Text("我的").fontSize(16)) } .width("100%") .height(400) } }

快速选型总结

  1. 简单上下排列 → Column
  2. 简单左右一行 → Row
  3. 叠加浮层 / 角标 → Stack
  4. 流式自动换行 / 均分 → Flex
  5. 组件互相参照定位 → RelativeContainer
  6. 图片滑动轮播 → Swiper
  7. 顶部底部切换页面 → Tabs
http://www.jsqmd.com/news/1111084/

相关文章:

  • 03 函数式自动微分
  • 使用图色技术来实现自动化脚本
  • MAC地址详解:网络设备的身份证,唯一性背后的逻辑
  • 鸿蒙ArkUI采用声明式布局体系,所有页面都遵循「一个根布局,根布局内可嵌套多层子布局」的规则,下面为你逐个讲解常用布局:
  • 2026免费AI抠图工具完整指南:电脑手机网页离线软件汇总
  • lu、穿梭视频分析系统 避暗实验视频分析系统 大鼠穿梭实验箱 穿梭避暗实验箱
  • WorkshopDL:终极Steam创意工坊下载器,无需Steam也能获取海量游戏模组
  • Awesome-EarthObservation-Code:遥感代码资源的合集
  • Fable助力打造音乐可视化工具Waveloop:呈现独特音乐结构,代码与视频皆有亮点
  • 毕业设计 深度学习植物识别与网络动态可视化系统(源码+论文)
  • PhotoGIMP:Photoshop用户的终极免费替代方案,3分钟实现零成本迁移
  • 3行代码搞定页面截图,Bun.WebView真的简单
  • 好的,这是一个符合您所有要求的CSDN标题:GEO服务技术解析与行业应用
  • Loop Engineering 实战拆解:Andrew Ng的三大产品开发循环如何让AI Agent真正“造对”产品
  • WordPress+WooCommerce跨境电商独立站主题选择与维护
  • Playnite:免费开源的多平台游戏库管理器终极解决方案
  • 摸清AI下属的特性,让他向你汇报工作
  • APKMirror安卓客户端:如何安全获取历史版本APK的终极指南
  • 用ChatGPT批量处理Excel数据,真的不用写一行代码?——2024最新Prompt工程实战手册(含12类财务/HR/销售场景)
  • 终极指南:如何用gdsdecomp轻松解密Godot游戏资源
  • 15个VTube Studio插件开发工具:从零开始打造虚拟主播互动体验
  • 第09章:Docker Compose 编排
  • C++23新特性在CLion中的实战体验:从语法糖到生产力提升
  • 如何准确研判企业技术需求,避免伪需求和低效匹配?
  • 2026Word文档压缩实操指南:带图文文档轻量化、官方瘦身完整操作教程
  • 10分钟搞定Joy-Con手柄连接电脑:从蓝牙配到游戏畅玩的完整方案
  • CentOS 7.9 64位 PostgreSQL安装和配置指南
  • 2026多端AI抠图工具指南:免费付费网页电脑手机软件实操教程
  • 杰理之获取设备总数【篇】
  • 【BMS上位机UI(C#)】