鸿蒙应用开发:Flex 组件从入门到实战
文章目录一、引言二、Flex 组件简介三、实战案例实现一个标签列表3.1 定义数据源3.2 使用 Flex 组件渲染列表3.3 核心配置项解析四、更多属性探索五、总结这是一个使用鸿蒙技术开发的本地原生记账应用非常适合大家用来练手。相关源码已上传至 Github点击此处查看项目。欢迎大家交流、指正也欢迎提交 PR。一、引言在鸿蒙应用开发中布局是构建用户界面的核心。Flex组件是一种强大的弹性布局容器它允许开发者以灵活、高效的方式排列子组件轻松实现各种复杂的页面布局。本文将带你快速上手Flex组件并通过一个实战案例让你掌握其核心用法。二、Flex 组件简介Flex组件与Row和Column组件类似都是用于放置子元素的容器。但Flex提供了更丰富的配置项可以更精细地控制子元素的排列方式、换行行为以及间距。三、实战案例实现一个标签列表下面我们通过一个具体的例子来演示如何使用Flex组件。假设我们要实现一个类似下图所示的标签列表页面标签可以自动换行并且排列整齐。3.1 定义数据源首先我们需要定义一个数组作为标签的数据源。这个数组里存放的是一些字符串每个字符串代表一个标签。tags:string[][鸿蒙,ArkTS,开发,教程,Flex布局,组件,实战,入门];3.2 使用 Flex 组件渲染列表接下来在Flex组件中我们使用ForEach循环来遍历这个数组。当遍历到数组的每一项时渲染一个Text组件也就是我们最终看到的标签内容。完整代码如下import{LengthMetrics}fromkit.ArkUI;EntryComponentstruct Index{tags:string[][鸿蒙,ArkTS,开发,教程,Flex布局,组件,实战,入门];build(){Flex({wrap:FlexWrap.Wrap,space:{main:LengthMetrics.vp(10),cross:LengthMetrics.vp(10)},direction:FlexDirection.Row}){ForEach(this.tags,(item:string){Text(item).fontSize(14).padding({left:12,right:12,top:6,bottom:6}).backgroundColor(#E8E8E8).borderRadius(16)},(item:string)item)}}}运行效果3.3 核心配置项解析在上面的代码中我们使用了Flex组件的几个关键配置项wrap: 这个选项用来配置当里面的子元素超出容器宽度时是否要换行。我们设置的是FlexWrap.Wrap让它自动换行。space: 这个选项用来设置主轴和侧轴交叉轴上子元素之间的间距。{main: LengthMetrics.vp(10), cross: LengthMetrics.vp(10)}表示主轴和侧轴方向上的间距都是 10。direction: 这个选项用来设置子元素在Flex组件上的布局方向。默认是水平方向FlexDirection.Row我们也可以将其改为垂直方向FlexDirection.Column子元素就会垂直排列。四、更多属性探索除了上述属性Flex组件还提供了许多其他有用的属性例如justifyContent: 设置子元素在主轴上的对齐方式如开始、居中、末尾、均匀分布等。alignItems: 设置子元素在交叉轴上的对齐方式如拉伸、开始、居中、末尾等。alignContent: 当有多行时设置行在交叉轴上的对齐方式。有兴趣的小伙伴可以下去试一试探索更多Flex组件的强大功能。五、总结通过本文的学习我们了解了Flex组件的基本用法并通过一个标签列表的实战案例掌握了其核心配置项wrap、space和direction的使用。Flex组件是鸿蒙开发中实现灵活布局的利器熟练掌握它将极大地提升你的开发效率。

相关新闻

Larq在边缘计算中的应用:如何让AI模型在嵌入式设备上高效运行

Larq在边缘计算中的应用:如何让AI模型在嵌入式设备上高效运行

Larq在边缘计算中的应用:如何让AI模型在嵌入式设备上高效运行 【免费下载链接】larq An Open-Source Library for Training Binarized Neural Networks 项目地址: https://gitcode.com/gh_mirrors/la/larq 在当今人工智能快速发展的时代,边缘计算…

2026/10/13 14:14:45 阅读更多 →
鸿蒙应用开发:Grid组件实现九宫格布局教程

鸿蒙应用开发:Grid组件实现九宫格布局教程

文章目录一、Grid组件简介二、基础九宫格实现三、Grid核心属性详解3.1 columnsTemplate - 列模板配置3.2 rowsTemplate - 行模板配置3.3 间距控制3.4 滚动支持四、高级九宫格示例五、布局方向与对齐方式六、响应式网格布局七、性能优化建议八、常见问题与解决方案问题1&#xf…

2026/10/12 13:38:19 阅读更多 →
UVa 364 Constitutional Computing

UVa 364 Constitutional Computing

题目描述 美国宪法规定,众议员名额应按各州人口比例分配,且每州至少一名。但由于人口并非除得尽,实际分配必须给每个州一个正整数个席位。本题要求对给定的若干州的人口数和目标总席位数,分别用四种经典分配方法(Hamil…

2026/10/13 9:56:15 阅读更多 →

最新新闻

AI读不懂你的技术文档?一场Rspress文档改造实录

AI读不懂你的技术文档?一场Rspress文档改造实录

前阵子我给自己长期维护的一个基于 Rspress 搭建的组件库文档站做了一次 AI 可读性测试,测试代号叫 Rspress-20。名字很直白:我从用户真实提问中筛出了 20 个高频问题,比如“某组件支持哪几种尺寸”“某个配置项的默认值是什么”“为什么某个…

2026/10/14 12:10:13 阅读更多 →
Spring源码编译踩坑指南:JDK、Gradle与依赖配置全解析

Spring源码编译踩坑指南:JDK、Gradle与依赖配置全解析

刚拿到Spring源码准备自己编译一份的时候,我其实是有点膨胀的。觉得无非就是clone代码、装个JDK、跑个Gradle,能有多难?结果一整天搭进去,光是在“编译不通过”和“下载依赖失败”之间来回折腾就花了大半时间。后来冷静下来&#…

2026/10/14 12:10:13 阅读更多 →
行波故障诊断原理与Simulink仿真复现实战指南

行波故障诊断原理与Simulink仿真复现实战指南

行波故障诊断,在输电线路保护领域算是一个“老资格”方向了。跟传统的阻抗法测距比起来,行波法不受过渡电阻、系统阻抗、线路不平衡等因素影响,定位精度高出一个数量级,所以这些年论文里、工程里讨论得都很多。最近我复现了一篇基…

2026/10/14 12:10:13 阅读更多 →
AD9834驱动代码详解:DDS信号源寄存器配置与SPI时序实现

AD9834驱动代码详解:DDS信号源寄存器配置与SPI时序实现

简介:面向嵌入式开发者的AD9834驱动代码包,专为需要快速生成高精度正弦波、方波与三角波的测试测量、通信系统和教育实验等场景设计,目标芯片为ADI的DDS数字频率合成器。压缩包仅7KB,共4个文件,包含2个C源文件与2个头文…

2026/10/14 12:10:13 阅读更多 →
C++数组从声明到越界:核心机制与避坑指南

C++数组从声明到越界:核心机制与避坑指南

1. 为什么数组值得单独拎出来讲C 学到数组这一章,很多人会觉得“这不就是一堆相同类型的数据放一起吗”,然后翻两页就过去了。但我带过的新人里,十个有八个在数组上栽过跟头,而且栽的方式五花八门:有人把数组长度写成变…

2026/10/14 12:10:13 阅读更多 →
从二进制到可编辑网格:owmdl模型在Blender中的导入解析

从二进制到可编辑网格:owmdl模型在Blender中的导入解析

简介:基于Blender的《守望先锋》owmdl模型导入插件源码包,主要面向需要在Blender中查看和编辑这一专有游戏格式的玩家、三维建模学习者和游戏资产研究者。插件通过io_scene_owm扩展Blender的导入能力,可解析模型网格、纹理、骨骼与动画数据&a…

2026/10/14 12:09:12 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →