# LearnHos **Repository Path**: licq_workspace/LearnHos ## Basic Information - **Project Name**: LearnHos - **Description**: 【学习笔记】鸿蒙应用开发 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-01-13 - **Last Updated**: 2023-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 开源项目 GitHub:[LearnHos](https://github.com/fourseas1998/LearnHos) 码云:[LearnHos](https://gitee.com/csh1998/LearnHos) --- # 布局 ## 自适应布局 ### 拉伸能力 #### 定义 当父容器的尺寸发生变化时,增加或减少的空间**全部分配**给父容器内的**指定子组件** #### 场景1:自动填充 实现:[容器组件-Row](#Compont-Row) + [基础组件Blank](#Compont-Blank) #### 场景2:按指定的比例拉伸或收缩 - 拉伸 当父容器在主轴方向上的尺寸**大于**所有子组件的尺寸之和时 实现:[组件通用属性-Flex布局-FlexGrow](#Property-Flex) - 收缩 当父容器在主轴方向上的尺寸**小于**所有子组件的尺寸之和时 实现:[组件通用属性-Flex布局-FlexShrink](#Property-Flex) #### 代码示例 GitHub:[自适应布局-拉伸能力](https://github.com/fourseas1998/LearnHos/blob/master/entry/src/main/ets/pages/layout/Stretch.ets) 码云:[自适应布局-拉伸能力](https://gitee.com/csh1998/LearnHos/blob/master/entry/src/main/ets/pages/layout/Stretch.ets) ### 均分能力 #### 定义 当父容器的尺寸发生变化时,增加或减少的空间**全部均匀分配**给父容器内的**空白区域** #### 场景 内容数量固定、均分显示。 实现方案1:[容器组件-Flex](#Compont-Flex) + 参数justifyContent 实现方案2:[容器组件-Row](#Compont-Row) + 属性justifyContent 实现方案3:[容器组件-Row](#Compont-Row) + [基础组件Blank](#Compont-Blank) #### 代码示例 GitHub:[自适应布局-均分能力](https://github.com/fourseas1998/LearnHos/blob/master/entry/src/main/ets/pages/layout/Equalization.ets) 码云:[自适应布局-均分能力](https://gitee.com/csh1998/LearnHos/blob/master/entry/src/main/ets/pages/layout/Equalization.ets) ### 占比能力 ~~TODO~~ ### 缩放能力 ~~TODO~~ ### 延伸能力 ~~TODO~~ ### 隐藏能力 ~~TODO~~ ### 折行能力 ~~TODO~~ ## 响应式布局 ### 断点 ~~TODO~~ ### 媒体查询 ~~TODO~~ ### 栅格布局 ~~TODO~~ --- # 【资料】ArkTs语言 ## 组件 ### 组件通用信息 #### 通用事件 ~~TODO~~ #### 通用属性 ##### Flex布局 官方API文档:[Flex布局](https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-universal-attributes-flex-layout-0000001430161081-V3) ***注意*** - 仅当父组件是 Flex、Column、Row 时生效。 ###### Flex布局-FlexGrow ***定义*** 设置父容器的剩余空间分配给此属性所在组件的比例。默认值为0。 ***使用*** 案例:[自适应布局-拉伸能力](#Layout-Adaptive-Stretch) ###### Flex布局-FlexShrink ***定义*** 设置父容器压缩尺寸分配给此属性所在组件的比例。 父容器为Row、Column时,默认值:0 父容器为flex时,默认值:1 ***使用*** 案例:[自适应布局-拉伸能力](#Layout-Adaptive-Stretch) #### 手势处理 ~~TODO~~ ### 基础组件 #### Blank 官方API文档:[Blank](https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-basic-components-blank-0000001380281274-V3) ***定义*** 空白填充组件,在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力。 ***使用*** ```typescript Blank() //设置填充颜色 Blank().color(Color.Yellow) Blank().color('#FFF24D') Blank().backgroundColor(Color.Yellow) Blank().backgroundColor('#FFF24D') //设置最小宽度为160 Blank('160').color(Color.Yellow) ``` 案例:[自适应布局-拉伸能力](#Layout-Adaptive-Stretch) ***注意*** - 仅当父组件为 [容器组件-Row](#Compont-Row) / Column 时生效。 - Blank的父组件如果不设置宽度,那么Blank会失效,可以通过设置Blank的最小宽度来填充固定宽度。 ### 容器组件 #### Column 官方API文档:[Column](https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-container-column-0000001380440890-V3) ***定义*** 沿垂直方向布局的容器。可以包含子组件。 ***使用*** ```typescript //参数 /* 纵向布局元素垂直方向间距。 默认值:0,单位vp */ Column({space:10}){ } //属性 /* 设置子组件在水平方向上的对齐格式。 默认值:HorizontalAlign.Center */ Column(){ } .width('100%') .height(30) .alignItems(HorizontalAlign.Center) /* 设置子组件在垂直方向上的对齐格式。 默认值:FlexAlign.Start */ Column(){ } .width('100%') .height(30) .justifyContent(FlexAlign.Start) ``` #### Row 官方API文档:[Row](https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-container-row-0000001380440898-V3) ***定义*** 沿水平方向布局容器。可以包含子组件。 ***使用*** ```typescript //参数 /* 横向布局元素间距。 默认值:0,单位vp */ Row({space:10}){ } //属性 /* 设置子组件在垂直方向上的对齐格式, 默认值:VerticalAlign.Center */ Row(){ } .width('100%') .alignItems(VerticalAlign.Center) /* 设置子组件在水平方向上的对齐格式, 默认值:FlexAlign.Start */ Row(){ } .width('100%') .justifyContent(FlexAlign.Start) ``` 案例:[自适应布局-均分能力](#Layout-Adaptive-Equalization) #### Flex 官方API文档:[Flex](https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/ts-container-flex-0000001430320949-V3) ***定义*** 以弹性方式布局子组件的容器组件。可以包含子组件。 ***使用*** ```typescript //参数 /* 子组件在Flex容器上排列的方向,即主轴的方向。 */ Flex({direction:FlexDirection.Row}){ } /* Flex容器是单行/列还是多行/列排列。 */ Flex({wrap:FlexWrap.NoWrap}){ } /* 子组件在Flex容器主轴上的对齐格式。 */ Flex({justifyContent:FlexAlign.Start}){ } /* 子组件在Flex容器交叉轴上的对齐格式。 */ Flex({alignItems:ItemAlign.Start}){ } /* 交叉轴中有额外的空间时,多行内容的对齐方式。仅在wrap为Wrap或WrapReverse下生效。 */ Flex({alignContent:FlexAlign.Start}){ } ``` 案例:[自适应布局-均分能力](#Layout-Adaptive-Equalization) ### 媒体组件 ~~TODO~~ ### 绘制组件 ~~TODO~~ ### 画布组件 ~~TODO~~ --- 持续更新中~