【HarmonyOS】HarmonyOS NEXT学习日记:四、布局与容器组件

【HarmonyOS】HarmonyOS NEXT学习日记:四、布局与容器组件

学习了基础组件之后,想要利用基础组件组装成一个页面,自然就要开始学习布局相关的知识。我理解的ArkUI的布局分为两个部分
一、组件自身的通用属性,诸如weight、height、margin、padding等
二、容器组件,ArkUI提供了很多容器组件,可以用来实现flex布局、网格布局等。
熟练掌握了以上两个方面,我们基本上就能写出一个基础页面了。
请添加图片描述

通用属性

尺寸属性

width、height、padding、margin

其意义与css一致,用法如下

Text('Radio1').width(200).height(100).padding({top:20,right: 40,bottom: 20,left: 40}).margin(20).backgroundColor(Color.Red)

在这里插入图片描述

需要注意的是,传入的值如果不带单位,默认单位为vp。
padding和margin用法一致,可以只传入一个数字,意义为top、bottom、left、right都采用该值、也可以传入上文中结构的对象分别设置四个方向的值。

size

设置长宽也可以使用size属性,用法如下

Text('Radio1').size({width: 200,height: 100,}).padding({top:20,right: 40,bottom: 20,left: 40}).margin(20).backgroundColor(Color.Red)

在这里插入图片描述
效果与单独设置width和height一致。

border

Text('边框').size({width:100,height:100}).border({width: {left: 1, right: 2},color: {left: Color.Red, right: Color.Blue},style: {left: BorderStyle.Dashed,right: BorderStyle.Dotted},radius: 10}) // top、right、bottom、left

代码中的border的参数都支持接收对象分别设置上下左右四个方向、或者接收一个数字设置四个方向的值。效果和css中的同名属性基本一致。
在这里插入图片描述

borderRadius

此外设置圆角也可以使用这个属性

Text('边框').size({width:100,height:100}).backgroundColor(Color.Red).borderRadius(5) // 四个圆角相同.borderRadius({topLeft: 5,topRight: 10,bottomRight: 15,bottomLeft: 20}) // 四个方向圆角,单独设置

在这里插入图片描述

layoutWeight

自适应伸缩,和cssflex布局中使用flex: xxx的表现类似。
设置 layoutWeight 属性的子元素与兄弟元素,会按照权重进行分配主轴的空间
语法:.layoutWeight(权重数字)

Row() {Text('Radio1').size({width: 200,height: 100,}).padding({top:20,right: 40,bottom: 20,left: 40}).margin(20).backgroundColor(Color.Red)Text('123').height(100).layoutWeight(1).backgroundColor(Color.Blue)}

在这里插入图片描述
可以看到设置了layoutWeight(1)的元素占满了剩余的宽度,和flex:1的表现是不是很像。

constraintSize

用来设置长宽的最大最小值,和css的maxWidth、minWidth、maxHeight、minHeight表现雷类似

Text('11').constraintSize({minWidth: 200,minHeight: 200}).backgroundColor(Color.Red)

在这里插入图片描述

Text('11111111111111111111111111111111111111111111111111111111111111111111111111111111').constraintSize({maxWidth: 100,maxHeight: 100}).backgroundColor(Color.Red)

在这里插入图片描述

背景

除了之前常用的backgroundColor,设置背景图片我们还会用到backgroundImage和一些相关的属性。

  • backgroundColor 设置背景色
  • backgroundImage 设置组件的背景图片
  • backgroundImageSize 设置组件背景图片的宽高
  • backgroundImagePosition 设置背景图的位置
Row().width(200).height(50).backgroundImage($r('app.media.test2'), ImageRepeat.NoRepeat).backgroundImagePosition({x: 50,y:0}).backgroundImageSize(ImageSize.Contain).border({ width: 1 })

在这里插入图片描述

ImageRepeat

ImageRepeat可以设置是否平铺,它的值可以为

  • NoRepeat:不平铺,默认值
  • X:水平平铺
  • Y:垂直平铺
  • XY:水平垂直均平铺
    !!!值得注意的是,背景定位默认单位是px
    但是我们推荐使用vp,所以这里推荐一个方法vp2px,可以将vp值转为px值
backgroundImagePosition({x: vp2px(50),y:vp2px(0)})
backgroundImageSize

可以接收一个枚举值
枚举 ImageSize:

  • Contain:等比例缩放背景图,当宽或高与组件尺寸相同停止缩放
  • Cover:等比例缩放背景图至图片完全覆盖组件范围
  • Auto:默认,原图尺寸

也可以接收一个对象{x:,y:}

表现与css同名元素基本一致

 Row().width(200).height(50).backgroundImage($r('app.media.test2'), ImageRepeat.NoRepeat).backgroundImageSize({ width: '100%', height: '100%' })// .backgroundImageSize(ImageSize.Cover)// .backgroundImageSize(ImageSize.Contain).border({ width: 1 })

在这里插入图片描述

Row().width(200).height(50).backgroundImage($r('app.media.test2'), ImageRepeat.NoRepeat)// .backgroundImageSize({ width: '100%', height: '100%' }).backgroundImageSize(ImageSize.Cover)// .backgroundImageSize(ImageSize.Contain).border({ width: 1 })

在这里插入图片描述

Row().width(200).height(50).backgroundImage($r('app.media.test2'), ImageRepeat.NoRepeat)// .backgroundImageSize({ width: '100%', height: '100%' })// .backgroundImageSize(ImageSize.Cover).backgroundImageSize(ImageSize.Contain).border({ width: 1 })

在这里插入图片描述

position

设置绝对定位,确定子组件相对父组件的位置。

用法: position(value: Position | Edges | LocalizedEdges)

Text('文字内容').position({x: 50,y: 50}).backgroundColor(Color.Green)

在这里插入图片描述

zIndex属性
Column(){Text('文字内容').position({x: 50,y: 50}).backgroundColor(Color.Green).zIndex(999)Text('文字内容').position({x: 60,y: 60}).backgroundColor(Color.Red).zIndex(1)}

在这里插入图片描述

线性布局(Column和Row)

使用过element的同学都清楚,线性布局通常使用el-column、el-row组件实现,ArkUI也提供了功能类似的容器组件Column 和 Row。

Column

沿垂直方向布局的容器
用法Column(value?: {space?: string | number}),接收一个参数设置子组件的间距

Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)}

在这里插入图片描述

alignItems属性

设置子组件在水平方向上的对齐格式。

用法 alignItems(value: HorizontalAlign)
HorizontalAlign枚举值如下

  • Start 按照语言方向起始端对齐。
  • Center 居中对齐,默认对齐方式。
  • End 按照语言方向末端对齐。
Column(){Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').alignItems(HorizontalAlign.Start)Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').alignItems(HorizontalAlign.Center)Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').alignItems(HorizontalAlign.End)}

在这里插入图片描述

justifyContent属性

设置子组件在垂直方向上的对齐格式。

用法:justifyContent(value: FlexAlign)

FlexAlign枚举值说明:

  • Start 元素在主轴方向首端对齐,第一个元素与行首对齐,同时后续的元素与前一个对齐。
  • Center 元素在主轴方向中心对齐,第一个元素与行首的距离与最后一个元素与行尾距离相同。
  • End 元素在主轴方向尾部对齐,最后一个元素与行尾对齐,其他元素与后一个对齐。
  • SpaceBetween Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。第一个元素与行首对齐,最后一个元素与行尾对齐。
  • SpaceAround Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半。
  • SpaceEvenly Flex主轴方向均匀分配弹性元素,相邻元素之间的距离、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。
 Column(){Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(200).backgroundColor('#eeeeee').justifyContent(FlexAlign.Start)Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(200).backgroundColor('#aaaaaa').justifyContent(FlexAlign.Center)Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(200).backgroundColor('#000000').justifyContent(FlexAlign.End)}

在这里插入图片描述

Column(){Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(200).backgroundColor('#eeeeee').justifyContent(FlexAlign.SpaceBetween)Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(200).backgroundColor('#aaaaaa').justifyContent(FlexAlign.SpaceAround)Column({space: 10}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(200).backgroundColor('#000000').justifyContent(FlexAlign.SpaceEvenly)}

在这里插入图片描述
这里的值与css的flex布局同名参数值与效果基本一致。

Row

沿水平方向布局容器。

用法: Row(value?:{space?: number | string }),接收一个参数设置子组件的间距

Column() {Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#eeeeee')}

在这里插入图片描述

alignItems属性

设置子组件在垂直方向上的对齐格式。

用法:alignItems(value: VerticalAlign)

VerticalAlign枚举值如下:

  • Top 顶部对齐。
  • Center 居中对齐,默认对齐方式。
  • Bottom 底部对齐。
Column() {Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#eeeeee').alignItems(VerticalAlign.Top)Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#aaaaaa').alignItems(VerticalAlign.Center)Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#000000').alignItems(VerticalAlign.Bottom)}

在这里插入图片描述

justifyContent属性

设置子组件在水平方向上的对齐格式

用法: justifyContent(value: FlexAlign)

FlexAlign枚举值说明:

  • Start 元素在主轴方向首端对齐,第一个元素与行首对齐,同时后续的元素与前一个对齐。
  • Center 元素在主轴方向中心对齐,第一个元素与行首的距离与最后一个元素与行尾距离相同。
  • End 元素在主轴方向尾部对齐,最后一个元素与行尾对齐,其他元素与后一个对齐。
  • SpaceBetween Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。第一个元素与行首对齐,最后一个元素与行尾对齐。
  • SpaceAround Flex主轴方向均匀分配弹性元素,相邻元素之间距离相同。第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半。
  • SpaceEvenly Flex主轴方向均匀分配弹性元素,相邻元素之间的距离、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。
Column() {Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#eeeeee').justifyContent(FlexAlign.Start)Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#aaaaaa').justifyContent(FlexAlign.Center)Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#000000').justifyContent(FlexAlign.End)}

在这里插入图片描述

Column() {Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#eeeeee').justifyContent(FlexAlign.SpaceBetween)Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#aaaaaa').justifyContent(FlexAlign.SpaceAround)Row({ space: 10 }) {Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.width('100%').height(100).backgroundColor('#000000').justifyContent(FlexAlign.SpaceEvenly)}

在这里插入图片描述

弹性布局(Flex)

以弹性方式布局子组件的容器组件

用法: Flex(value?: FlexOptions)

FlexOptions说明:

参数名参数类型必填默认值描述
directionFlexDirectionFlexDirection.Row子组件在Flex容器上排列的方向,即主轴的方向。
wrapFlexWrapFlexWrap.NoWrapFlex容器是单行/列还是多行/列排列。在多行布局时,通过交叉轴方向,确认新行堆叠方向。
justifyContentFlexAlignFlexAlign.Start所有子组件在Flex容器主轴上的对齐格式。
alignItemsItemAlignItemAlign.Start所有子组件在Flex容器交叉轴上的对齐格式。
alignContentFlexAlignFlexAlign.Start交叉轴中有额外的空间时,多行内容的对齐方式。仅在wrap为Wrap或WrapReverse下生效。
space12+FlexSpaceOptions{main: LengthMetrics.px(0), cross: LengthMetrics.px(0)}所有子组件在Flex容器主轴或交叉轴的space。
空间为负数、百分比或justifyContent设置为FlexAlign.SpaceBetween、FlexAlign.SpaceAround、FlexAlign.SpaceEvenly时不生效。

在这里插入图片描述
flex布局几乎和用css写flex布局参数一致。
比如我们写一个常用的,水平垂直居中

Flex({justifyContent: FlexAlign.Center,alignItems: ItemAlign.Center}){Text('111').backgroundColor(Color.Red)Text('222').backgroundColor(Color.Blue)Text('333').backgroundColor(Color.Green)}.height(300).backgroundColor('#eeeeee')

在这里插入图片描述

层叠布局(Stack)

Stack 堆叠容器,子组件按照顺序依次入栈,后一个子组件覆盖前一个子组件

用法:Stack(value?: { alignContent?: Alignment })

Alignment枚举如下

  • TopStart 顶部起始端。
  • Top 顶部横向居中。
  • TopEnd 顶部尾端。
  • Start 起始端纵向居中。
  • Center 横向和纵向居中。
  • End 尾端纵向居中。
  • BottomStart 底部起始端。
  • Bottom 底部横向居中。
  • BottomEnd 底部尾端。
Stack({ alignContent: Alignment.Bottom }) {Text('First child, show in bottom').width('90%').height('100%').backgroundColor(0xd2cab3).align(Alignment.Top)Text('Second child, show in top').width('70%').height('60%').backgroundColor(0xc1cbac).align(Alignment.Top)}.width('100%').height(150).margin({ top: 5 })

在这里插入图片描述

Stack({ alignContent: Alignment.Center }) {Text('First child, show in bottom').width('90%').height('100%').backgroundColor(0xd2cab3).align(Alignment.Top)Text('Second child, show in top').width('70%').height('60%').backgroundColor(0xc1cbac).align(Alignment.Top)}.width('100%').height(150).margin({ top: 5 })

在这里插入图片描述

Stack({ alignContent: Alignment.TopEnd }) {Text('First child, show in bottom').width('90%').height('100%').backgroundColor(0xd2cab3).align(Alignment.Top)Text('Second child, show in top').width('70%').height('60%').backgroundColor(0xc1cbac).align(Alignment.Top)}.width('100%').height(150).margin({ top: 5 })

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/379665.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内新能源汽车芯片自给,承认差距,任重道远

【科技明说 | 科技热点关注】 据近日工信部电子五所元器件与材料研究院高级副院长罗道军表示,中国拥有最大的新能源车产能,芯片用量也是越来越多。但是芯片的自给率目前不到10%,是结构性的短缺。 中国拥有最大新能源车产能&#…

计算机课设——基于Java web的超市管理系统

smbms_java_web 基于Java web的超市管理系统,数据库课程设计 1.引言 是一个基于Java Web连接MySQL的小项目。 超市管理系统(smbms)作为每个计算机专业的大学生都是一个很好的练手项目,逻辑层次分明,基础功能包括用户的登录和注销&#xff…

NFS存储、API资源对象StorageClass、Ceph存储-搭建ceph集群和Ceph存储-在k8s里使用ceph(2024-07-16)

一、NFS存储 注意:在做本章节示例时,需要拿单独一台机器来部署NFS,具体步骤略。NFS作为常用的网络文件系统,在多机之间共享文件的场景下用途广泛,毕竟NFS配置方 便,而且稳定可靠。NFS同样也有一些缺点&…

S参数入门

一、说明 S参数全称为散射参数,主要用来作为描述线性无源互联结构的一种行为模型,来源于网络分析方法。网络分析法是一种频域方法,在一组离散的频率点上,通过在输入和输出端口得到的参量完全描述线性时不变系统(定义参…

[003-02-10].第10节:Docker环境下搭建Redis主从复制架构

我的博客大纲 我的后端学习大纲 我的Redis学习大纲 1.cluster(集群)模式-docker版 哈希槽分区进行亿级数据存储 1.1.面试题:1~2亿条数据需要缓存,请问如何设计这个存储案例 1.回答:单机单台100%不可能,肯…

食堂采购系统开发:从需求分析到上线实施的完整指南

本篇文章,笔者将详细介绍食堂采购系统从需求分析到上线实施的完整过程,旨在为开发团队和管理者提供一个系统化的指南。 一、需求分析 1.用户需求 常见的需求包括: -采购计划管理 -供应商管理 -库存管理 -成本控制 -报表生成 2.系统功…

STM32自己从零开始实操:PCB全过程

一、PCB总体分布 以下只能让大家看到各个模块大致分布在板子的哪一块,只能说每个人画都有自己的理由: 电源:从外部接入电源,5V接到中间,向上变成4V供给无线,向下变成3V供给下面的接口(也刻意放…

html视差滚动效果

html视差滚动效果 借助gsap效果去实现的 gsap官网 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

计算机网络——网络层(路由选择协议、路由器工作原理、IP多播、虚拟专用网和网络地址转换)

目录 路由选择协议 因特网的路由选择协议特点 路由信息协议RIP RIP衡量目的网络距离 RIP选择路由器的方式 RIP具有以下三个重要特点 RIP的基本工作流程 RIP的距离向量算法 ​编辑 ​编辑 RIP存在的问题——“坏消息传播得慢” RIP的封装 开放最短路径优先协议OSPF…

剖析SOLIDWORKS科研版的功能优势

在科研领域&#xff0c;高精度的建模与分析工具是科研工作者不可或缺的助手。SOLIDWORKS科研版作为一款专为科研人员和工程师设计的三维计算机辅助设计软件&#xff0c;凭借其强大的功能优势&#xff0c;在科研界获得了广泛的认可与应用。本文将从多个维度深入剖析SOLIDWORKS科…

object-C 解答算法:移动零(leetCode-283)

移动零(leetCode-283) 题目如下图:(也可以到leetCode上看完整题目,题号283) 解题思路: 本质就是把非0的元素往前移动,接下来要考虑的是怎么移动,每次移动多少? 这里需要用到双指针,i 记录每次遍历的元素值, j 记录“非0元素值”需要移动到的位置; 当所有“非0元素值”都移…

彻底改变时尚:使用 GAN 实现 AI 的未来

彻底改变时尚&#xff1a;使用 GAN 实现 AI 的未来 一、介绍 想象一下&#xff0c;在这个世界里&#xff0c;时装设计师永远不会用完新想法&#xff0c;我们穿的每一件衣服都是一件艺术品。听起来很有趣&#xff0c;对吧&#xff1f;好吧&#xff0c;我们可以在通用对抗网络 &a…

【BUG】已解决: KeyboardInterrupt

已解决&#xff1a; KeyboardInterrupt 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社区主理人 擅长.net、C…

在线实习项目|泰迪智能科技企业级项目学习,暑期大数据人工智能学习

在线实习介绍 实习时间&#xff1a;每个项目周期七周左右 面向对象&#xff1a;大数据、计算机相关专业学生&#xff1b;大三、大四毕业年度学生 在线实习收获 1、获得项目实战技能&#xff0c;积累项目经验 2、获得在线实习证明 项目特点…

4 C 语言控制流与循环结构的深入解读

目录 1 复杂表达式的计算过程 2 if-else语句 2.1 基本结构及示例 2.2 if-else if 多分支 2.3 嵌套 if-else 2.4 悬空的 else 2.5 注意事项 2.5.1 if 后面不要加分号 2.5.2 省略 else 2.5.3 省略 {} 2.5.4 注意点 3 while 循环 3.1 一般形式 3.2 流程特点 3.3 注…

去中心化技术的变革力量:探索Web3的潜力

随着区块链技术的发展和应用&#xff0c;去中心化技术正成为数字世界中的一股强大变革力量。Web3作为去中心化应用的新兴范式&#xff0c;正在重新定义人们对于数据、互联网和价值交换的认知。本文将探索去中心化技术的基本概念、Web3的核心特征及其潜力应用&#xff0c;展示其…

Linux——远程连接服务器

sshd服务端 ssh客户端 ssh 服务配置 #ssh 服务安装包 openssh-server [rootserver1 ~] # vim /etc/ssh/sshd_config 17 . #Port 22 # 监听端口&#xff0c;默认监听 22 端口 【默认可修改】 18 . #AddressFamily any #IPV4 和 IPV6 协议家族用哪个&#xff0c; any 表示二者…

捷配总结的SMT工厂安全防静电规则

SMT工厂须熟记的安全防静电规则&#xff01; 安全对于我们非常重要&#xff0c;特别是我们这种SMT加工厂&#xff0c;通常我们所讲的安全是指人身安全。 但这里我们须树立一个较为全面的安全常识就是在强调人身安全的同时亦必须注意设备、产品的安全。 电气&#xff1a; 怎样预…

操作系统发展简史(Unix/Linux 篇 + DOS/Windows 篇)+ Mac 与 Microsoft 之风云争霸

操作系统发展简史&#xff08;Unix/Linux 篇&#xff09; 说到操作系统&#xff0c;大家都不会陌生。我们天天都在接触操作系统 —— 用台式机或笔记本电脑&#xff0c;使用的是 windows 和 macOS 系统&#xff1b;用手机、平板电脑&#xff0c;则是 android&#xff08;安卓&…

C++写一个线程池

C写一个线程池 文章目录 C写一个线程池设计思路测试数据的实现任务类的实现线程池类的实现线程池构造函数线程池入口函数队列中取任务添加任务函数线程池终止函数 源码 之前用C语言写了一个线程池&#xff0c;详情请见&#xff1a; C语言写一个线程池 这次换成C了&#xff01;…