Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
5e40cd0f
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5e40cd0f
编写于
9月 28, 2022
作者:
Z
zengyawen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update docs
Signed-off-by:
N
zengyawen
<
zengyawen1@huawei.com
>
上级
55be4fac
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
44 addition
and
51 deletion
+44
-51
zh-cn/application-dev/key-features/multi-device-app-dev/adaptive-layout.md
...-dev/key-features/multi-device-app-dev/adaptive-layout.md
+28
-28
zh-cn/application-dev/key-features/multi-device-app-dev/appgallery-home-page.md
...key-features/multi-device-app-dev/appgallery-home-page.md
+2
-2
zh-cn/application-dev/key-features/multi-device-app-dev/architecture-design.md
.../key-features/multi-device-app-dev/architecture-design.md
+0
-7
zh-cn/application-dev/key-features/multi-device-app-dev/case.md
...application-dev/key-features/multi-device-app-dev/case.md
+10
-10
zh-cn/application-dev/key-features/multi-device-app-dev/faq.md
.../application-dev/key-features/multi-device-app-dev/faq.md
+4
-4
未找到文件。
zh-cn/application-dev/key-features/multi-device-app-dev/adaptive-layout.md
浏览文件 @
5e40cd0f
...
@@ -6,13 +6,13 @@
...
@@ -6,13 +6,13 @@
| 自适应布局类别 | 自适应布局能力 | 使用场景 | 实现方式 |
| 自适应布局类别 | 自适应布局能力 | 使用场景 | 实现方式 |
| -------- | -------- | -------- | -------- |
| -------- | -------- | -------- | -------- |
| 自适应拉伸 |
[
拉伸能力
](
#拉伸能力
)
| 容器组件尺寸发生变化时,增加或减小的空间
**全部分配**
给容器组件内
**指定区域**
。 |
[
Flex布局
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-flex-layout.md
)
的flexGrow和flexShrink属性 |
| 自适应拉伸 |
[
拉伸能力
](
#拉伸能力
)
| 容器组件尺寸发生变化时,增加或减小的空间
**全部分配**
给容器组件内
**指定区域**
。 |
[
Flex布局
](
../..
/reference/arkui-ts/ts-universal-attributes-flex-layout.md
)
的flexGrow和flexShrink属性 |
| |
[
均分能力
](
#均分能力
)
| 容器组件尺寸发生变化时,增加或减小的空间
**均匀分配**
给容器组件内
**所有空白区域**
。 |
[
Row组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-row.md
)
、
[
Column组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md
)
或
[
Flex组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-flex.md
)
的justifyContent属性设置为FlexAlign.SpaceEvenly |
| |
[
均分能力
](
#均分能力
)
| 容器组件尺寸发生变化时,增加或减小的空间
**均匀分配**
给容器组件内
**所有空白区域**
。 |
[
Row组件
](
../../reference/arkui-ts/ts-container-row.md
)
、
[
Column组件
](
../../reference/arkui-ts/ts-container-column.md
)
或
[
Flex组件
](
../..
/reference/arkui-ts/ts-container-flex.md
)
的justifyContent属性设置为FlexAlign.SpaceEvenly |
| 自适应缩放 |
[
占比能力
](
#占比能力
)
| 子组件的宽或高
**按照预设的比例**
,随容器组件发生变化。 | 基于通用属性的两种实现方式:
<br/>
-
将子组件的宽高设置为父组件宽高的百分比
<br/>
-
layoutWeight属性 |
| 自适应缩放 |
[
占比能力
](
#占比能力
)
| 子组件的宽或高
**按照预设的比例**
,随容器组件发生变化。 | 基于通用属性的两种实现方式:
<br/>
-
将子组件的宽高设置为父组件宽高的百分比
<br/>
-
layoutWeight属性 |
| |
[
缩放能力
](
#缩放能力
)
| 子组件的宽高
**按照预设的比例**
,随容器组件发生变化,且变化过程中子组件的
**宽高比不变**
。 |
[
布局约束
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-layout-constraints.md
)
的aspectRatio属性 |
| |
[
缩放能力
](
#缩放能力
)
| 子组件的宽高
**按照预设的比例**
,随容器组件发生变化,且变化过程中子组件的
**宽高比不变**
。 |
[
布局约束
](
../..
/reference/arkui-ts/ts-universal-attributes-layout-constraints.md
)
的aspectRatio属性 |
| 自适应延伸 |
[
延伸能力
](
#延伸能力
)
| 容器组件内的子组件,按照其
**在列表中的先后顺序**
,随容器组件尺寸变化显示或隐藏。 | 基于容器组件的两种实现方式:
<br/>
-
通过[List组件](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md)实现
<br/>
-
通过
[
Scroll组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md
)
配合
[
Row组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-row.md
)
或
[
Column组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-column.md
)
实现 |
| 自适应延伸 |
[
延伸能力
](
#延伸能力
)
| 容器组件内的子组件,按照其
**在列表中的先后顺序**
,随容器组件尺寸变化显示或隐藏。 | 基于容器组件的两种实现方式:
<br/>
-
通过[List组件](
../../reference/arkui-ts/ts-container-list.md)实现
<br/>
-
通过
[
Scroll组件
](
../../reference/arkui-ts/ts-container-scroll.md
)
配合
[
Row组件
](
../../reference/arkui-ts/ts-container-row.md
)
或
[
Column组件
](
../..
/reference/arkui-ts/ts-container-column.md
)
实现 |
| |
[
隐藏能力
](
#隐藏能力
)
| 容器组件内的子组件,按照其
**预设的显示优先级**
,随容器组件尺寸变化显示或隐藏。
**相同显示优先级的子组件同时显示或隐藏**
。 |
[
布局约束
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-layout-constraints.md
)
的displayPriority属性 |
| |
[
隐藏能力
](
#隐藏能力
)
| 容器组件内的子组件,按照其
**预设的显示优先级**
,随容器组件尺寸变化显示或隐藏。
**相同显示优先级的子组件同时显示或隐藏**
。 |
[
布局约束
](
../..
/reference/arkui-ts/ts-universal-attributes-layout-constraints.md
)
的displayPriority属性 |
| 自适应折行 |
[
折行能力
](
#折行能力
)
| 容器组件尺寸发生变化时,如果布局方向尺寸不足以显示完整内容,
**自动换行**
。 |
[
Flex组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-flex.md
)
的wrap属性设置为FlexWrap.Wrap |
| 自适应折行 |
[
折行能力
](
#折行能力
)
| 容器组件尺寸发生变化时,如果布局方向尺寸不足以显示完整内容,
**自动换行**
。 |
[
Flex组件
](
../..
/reference/arkui-ts/ts-container-flex.md
)
的wrap属性设置为FlexWrap.Wrap |
下面我们依次介绍这几种自适应布局能力。
下面我们依次介绍这几种自适应布局能力。
...
@@ -24,20 +24,20 @@
...
@@ -24,20 +24,20 @@
拉伸能力是指容器组件尺寸发生变化时,增加或减小的空间全部分配给容器组件内指定区域。
拉伸能力是指容器组件尺寸发生变化时,增加或减小的空间全部分配给容器组件内指定区域。
拉伸能力通常通过
[
Flex布局
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-flex-layout.md
)
中的flexGrow和flexShrink属性实现,flexGrow和flexShink属性常与flexBasis属性搭配使用,故将这三个属性放在一起介绍。
拉伸能力通常通过
[
Flex布局
](
../..
/reference/arkui-ts/ts-universal-attributes-flex-layout.md
)
中的flexGrow和flexShrink属性实现,flexGrow和flexShink属性常与flexBasis属性搭配使用,故将这三个属性放在一起介绍。
| 属性 | 类型 | 默认值 | 描述 |
| 属性 | 类型 | 默认值 | 描述 |
| -------- | -------- | -------- | -------- |
| -------- | -------- | -------- | -------- |
| flexGrow | number | 0 | 仅当父容器宽度大于所有子组件宽度的总和时,该属性生效。配置了此属性的子组件,按照比例拉伸,分配父容器的多余空间。 |
| flexGrow | number | 0 | 仅当父容器宽度大于所有子组件宽度的总和时,该属性生效。配置了此属性的子组件,按照比例拉伸,分配父容器的多余空间。 |
| flexShrink | number | 1 | 仅当父容器宽度小于所有子组件宽度的总和时,该属性生效。配置了此属性的子组件,按照比例收缩,分配父容器的不足空间。 |
| flexShrink | number | 1 | 仅当父容器宽度小于所有子组件宽度的总和时,该属性生效。配置了此属性的子组件,按照比例收缩,分配父容器的不足空间。 |
| flexBasis | 'auto'
\|
[
Length
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-types.md#length
)
| 'auto' | 设置组件在Flex容器中主轴方向上基准尺寸。'auto'意味着使用组件原始的尺寸,不做修改。
<br/>
flexBasis属性不是必须的,通过width或height也可以达到同样的效果。当flexBasis属性与width或height发生冲突时,以flexBasis属性为准。 |
| flexBasis | 'auto'
\|
[
Length
](
../..
/reference/arkui-ts/ts-types.md#length
)
| 'auto' | 设置组件在Flex容器中主轴方向上基准尺寸。'auto'意味着使用组件原始的尺寸,不做修改。
<br/>
flexBasis属性不是必须的,通过width或height也可以达到同样的效果。当flexBasis属性与width或height发生冲突时,以flexBasis属性为准。 |
>  **说明:**
>  **说明:**
> - 开发者期望将父容器的剩余空间全部分配给某空白区域时,也可以通过[Blank组件](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-components-blank.md)实现。注意仅当父组件为Row\Column\Flex组件时,Blank组件才会生效。
> - 开发者期望将父容器的剩余空间全部分配给某空白区域时,也可以通过[Blank组件](
../..
/reference/arkui-ts/ts-basic-components-blank.md)实现。注意仅当父组件为Row\Column\Flex组件时,Blank组件才会生效。
>
>
> - 类Web开发范式也是通过flex-grow和flex-shrink实现拉伸能力,同时也支持配置flex-basis,详见[通用样式](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-common-styles.md)。
> - 类Web开发范式也是通过flex-grow和flex-shrink实现拉伸能力,同时也支持配置flex-basis,详见[通用样式](
../..
/reference/arkui-js/js-components-common-styles.md)。
>
>
> - 类Web开发范式没有提供blank组件,但可以通过div组件模拟blank组件的行为,如“<div style='flex-grow: 1; flex-shrink: 0; flex-basis: 0'></div>”。
> - 类Web开发范式没有提供blank组件,但可以通过div组件模拟blank组件的行为,如“<div style='flex-grow: 1; flex-shrink: 0; flex-basis: 0'></div>”。
...
@@ -167,13 +167,13 @@ struct FlexibleCapabilitySample2 {
...
@@ -167,13 +167,13 @@ struct FlexibleCapabilitySample2 {
均分能力是指容器组件尺寸发生变化时,增加或减小的空间均匀分配给容器组件内所有空白区域。它常用于内容数量固定、均分显示的场景,比如工具栏、底部菜单栏等。
均分能力是指容器组件尺寸发生变化时,增加或减小的空间均匀分配给容器组件内所有空白区域。它常用于内容数量固定、均分显示的场景,比如工具栏、底部菜单栏等。
均分能力可以通过将
[
Row组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-row.md
)
、
[
Column组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md
)
或
[
Flex组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-flex.md
)
的justifyContent属性设置为FlexAlign.SpaceEvenly实现,即子元素在父容器主轴方向等间距布局,相邻元素之间的间距、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。
均分能力可以通过将
[
Row组件
](
../../reference/arkui-ts/ts-container-row.md
)
、
[
Column组件
](
../../reference/arkui-ts/ts-container-column.md
)
或
[
Flex组件
](
../..
/reference/arkui-ts/ts-container-flex.md
)
的justifyContent属性设置为FlexAlign.SpaceEvenly实现,即子元素在父容器主轴方向等间距布局,相邻元素之间的间距、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。
>  **说明:**
>  **说明:**
> - 均分能力还可以通过其它方式实现,如使用[Grid网格组件](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-grid.md)或在每个组件间添加Blank组件等。
> - 均分能力还可以通过其它方式实现,如使用[Grid网格组件](
../..
/reference/arkui-ts/ts-container-grid.md)或在每个组件间添加Blank组件等。
>
>
> - 类Web开发范式中,通过将[div组件](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-container-div.md)的justify-content属性设置为space-evenly来实现均分布局。
> - 类Web开发范式中,通过将[div组件](
../..
/reference/arkui-js/js-components-container-div.md)的justify-content属性设置为space-evenly来实现均分布局。
**示例:**
**示例:**
...
@@ -265,9 +265,9 @@ struct EquipartitionCapabilitySample {
...
@@ -265,9 +265,9 @@ struct EquipartitionCapabilitySample {
占比能力通常有两种实现方式:
占比能力通常有两种实现方式:
-
将子组件的宽高设置为父组件宽高的百分比,详见
[
尺寸设置
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-universal-attributes-size.md
)
及
[
长度类型
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-types.md#length
)
。
-
将子组件的宽高设置为父组件宽高的百分比,详见
[
尺寸设置
](
../../reference/arkui-ts/ts-universal-attributes-size.md
)
及
[
长度类型
](
../..
/reference/arkui-ts/ts-types.md#length
)
。
-
通过layoutWeight属性配置互为兄弟关系的组件在父容器主轴方向的布局权重,详见
[
尺寸设置
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-size.md
)
。
-
通过layoutWeight属性配置互为兄弟关系的组件在父容器主轴方向的布局权重,详见
[
尺寸设置
](
../..
/reference/arkui-ts/ts-universal-attributes-size.md
)
。
-
当父容器尺寸确定时,其子组件按照开发者配置的权重比例分配父容器中主轴方向的空间。
-
当父容器尺寸确定时,其子组件按照开发者配置的权重比例分配父容器中主轴方向的空间。
-
仅当父容器是Row、Colomn或者Flex时,layoutWeight属性才会生效。
-
仅当父容器是Row、Colomn或者Flex时,layoutWeight属性才会生效。
-
设置layoutWeight属性后,组件本身的尺寸会失效。比如同时设置了.width('40%')和.layoutWeight(1),那么只有.layoutWeight(1)会生效。
-
设置layoutWeight属性后,组件本身的尺寸会失效。比如同时设置了.width('40%')和.layoutWeight(1),那么只有.layoutWeight(1)会生效。
...
@@ -277,11 +277,11 @@ layoutWeight存在使用限制,所以实际使用过程中大多通过将子
...
@@ -277,11 +277,11 @@ layoutWeight存在使用限制,所以实际使用过程中大多通过将子
>  **说明:**
>  **说明:**
> - 占比能力在实际开发中使用的非常广泛,可以通过很多不同的方式实现占比能力,如还可以通过[Grid组件](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-grid.md)的columnsTemplate属性设置网格容器中列的数量及其宽度比例,或通过配置子组件在栅格(本章后文将详细介绍栅格系统)中占据不同的列数来实现占比能力。本小节仅介绍最基础和常用的实现方式,局限性较大或比非常小众的实现方式,本文不做展开介绍。
> - 占比能力在实际开发中使用的非常广泛,可以通过很多不同的方式实现占比能力,如还可以通过[Grid组件](
../..
/reference/arkui-ts/ts-container-grid.md)的columnsTemplate属性设置网格容器中列的数量及其宽度比例,或通过配置子组件在栅格(本章后文将详细介绍栅格系统)中占据不同的列数来实现占比能力。本小节仅介绍最基础和常用的实现方式,局限性较大或比非常小众的实现方式,本文不做展开介绍。
>
>
> - 类Web开发范式同样支持以百分比的形式设置组件的宽高,详见[通用样式](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-js/js-components-common-styles.md)中关于width和height的介绍以及[长度类型介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-appendix-types.md#%E9%95%BF%E5%BA%A6%E7%B1%BB%E5%9E%8B)。
> - 类Web开发范式同样支持以百分比的形式设置组件的宽高,详见[通用样式](
../../reference/arkui-js/js-components-common-styles.md)中关于width和height的介绍以及[长度类型介绍](../..
/reference/arkui-js/js-appendix-types.md#%E9%95%BF%E5%BA%A6%E7%B1%BB%E5%9E%8B)。
>
>
> - 与声明式开发范式中的layoutWeight属性类似,类Web开发范式提供了[flex-weight样式](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-common-atomic-layout.md#%E5%8D%A0%E6%AF%94%E8%83%BD%E5%8A%9B)用于配置互为兄弟关系的组件在父容器主轴方向的布局权重。
> - 与声明式开发范式中的layoutWeight属性类似,类Web开发范式提供了[flex-weight样式](
../..
/reference/arkui-js/js-components-common-atomic-layout.md#%E5%8D%A0%E6%AF%94%E8%83%BD%E5%8A%9B)用于配置互为兄弟关系的组件在父容器主轴方向的布局权重。
**示例:**
**示例:**
...
@@ -370,11 +370,11 @@ struct ProportionCapabilitySample {
...
@@ -370,11 +370,11 @@ struct ProportionCapabilitySample {
缩放能力通过使用百分比布局配合
**固定宽高比**
(aspectRatio属性)实现当容器尺寸发生变化时,内容自适应调整。
缩放能力通过使用百分比布局配合
**固定宽高比**
(aspectRatio属性)实现当容器尺寸发生变化时,内容自适应调整。
可以访问
[
布局约束
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-layout-constraints.md
)
,了解aspectRatio属性的详细信息。
可以访问
[
布局约束
](
../..
/reference/arkui-ts/ts-universal-attributes-layout-constraints.md
)
,了解aspectRatio属性的详细信息。
>  **说明:**
>  **说明:**
> 类Web开发范式同样提供了[aspect-ratio样式](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-common-atomic-layout.md#%E5%9B%BA%E5%AE%9A%E6%AF%94%E4%BE%8B),用于固定组件的宽高比。
> 类Web开发范式同样提供了[aspect-ratio样式](
../..
/reference/arkui-js/js-components-common-atomic-layout.md#%E5%9B%BA%E5%AE%9A%E6%AF%94%E4%BE%8B),用于固定组件的宽高比。
**示例:**
**示例:**
...
@@ -445,17 +445,17 @@ struct ScaleCapabilitySample {
...
@@ -445,17 +445,17 @@ struct ScaleCapabilitySample {
延伸能力通常有两种实现方式:
延伸能力通常有两种实现方式:
-
通过
[
List组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-list.md
)
实现。
-
通过
[
List组件
](
../..
/reference/arkui-ts/ts-container-list.md
)
实现。
-
通过
[
Scroll组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md
)
配合
[
Row组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-row.md
)
或
[
Column组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-column.md
)
实现。
-
通过
[
Scroll组件
](
../../reference/arkui-ts/ts-container-scroll.md
)
配合
[
Row组件
](
../../reference/arkui-ts/ts-container-row.md
)
或
[
Column组件
](
../..
/reference/arkui-ts/ts-container-column.md
)
实现。
>  **说明:**
>  **说明:**
> - List、Row或Column组件中子节点的在页面显示时就已经全部完成了布局计算及渲染,只不过受限于父容器尺寸,用户只能看到一部分。随着父容器尺寸增大,用户可以看到的子节点数目也相应的增加。用户还可以通过手指滑动触发列表滑动,查看被隐藏的子节点。
> - List、Row或Column组件中子节点的在页面显示时就已经全部完成了布局计算及渲染,只不过受限于父容器尺寸,用户只能看到一部分。随着父容器尺寸增大,用户可以看到的子节点数目也相应的增加。用户还可以通过手指滑动触发列表滑动,查看被隐藏的子节点。
>
>
> - 类Web开发范式同样可以使用[list组件](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-container-list.md)实现延伸能力。
> - 类Web开发范式同样可以使用[list组件](
../..
/reference/arkui-js/js-components-container-list.md)实现延伸能力。
>
>
> - 类Web开发范式没有提供scroll组件,但可以将[div组件](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-container-div.md)的overflow样式设置为scroll(即div组件主轴方向上子元素的尺寸超过div组件本身的尺寸时进行滚动显示)来模拟scroll组件的行为。
> - 类Web开发范式没有提供scroll组件,但可以将[div组件](
../..
/reference/arkui-js/js-components-container-div.md)的overflow样式设置为scroll(即div组件主轴方向上子元素的尺寸超过div组件本身的尺寸时进行滚动显示)来模拟scroll组件的行为。
**示例:**
**示例:**
...
@@ -601,10 +601,10 @@ struct ExtensionCapabilitySample2 {
...
@@ -601,10 +601,10 @@ struct ExtensionCapabilitySample2 {
隐藏能力通过设置
**布局优先级**
(displayPriority属性)来控制显隐,当布局主轴方向剩余尺寸不足以满足全部元素时,按照布局优先级大小,从小到大依次隐藏,直到容器能够完整显示剩余元素。具有相同布局优先级的元素将同时显示或者隐藏。
隐藏能力通过设置
**布局优先级**
(displayPriority属性)来控制显隐,当布局主轴方向剩余尺寸不足以满足全部元素时,按照布局优先级大小,从小到大依次隐藏,直到容器能够完整显示剩余元素。具有相同布局优先级的元素将同时显示或者隐藏。
可以访问
[
布局约束
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-layout-constraints.md
)
,了解displayPriority属性的详细信息。
可以访问
[
布局约束
](
../..
/reference/arkui-ts/ts-universal-attributes-layout-constraints.md
)
,了解displayPriority属性的详细信息。
>  **说明:**
>  **说明:**
> 类Web开发范式同样支持[display-index样式](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-common-atomic-layout.md#%E9%9A%90%E8%97%8F%E8%83%BD%E5%8A%9B),用于设置布局优先级。
> 类Web开发范式同样支持[display-index样式](
../..
/reference/arkui-js/js-components-common-atomic-layout.md#%E9%9A%90%E8%97%8F%E8%83%BD%E5%8A%9B),用于设置布局优先级。
**示例:**
**示例:**
...
@@ -692,10 +692,10 @@ struct HiddenCapabilitySample {
...
@@ -692,10 +692,10 @@ struct HiddenCapabilitySample {
折行能力通过使用
**Flex折行布局**
(将wrap属性设置为FlexWrap.Wrap)实现,当横向布局尺寸不足以完整显示内容元素时,通过折行的方式,将元素显示在下方。
折行能力通过使用
**Flex折行布局**
(将wrap属性设置为FlexWrap.Wrap)实现,当横向布局尺寸不足以完整显示内容元素时,通过折行的方式,将元素显示在下方。
可以访问
[
Flex组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-flex.md
)
,了解Flex组件的详细用法。
可以访问
[
Flex组件
](
../..
/reference/arkui-ts/ts-container-flex.md
)
,了解Flex组件的详细用法。
>  **说明:**
>  **说明:**
> 类Web开发范式通过将[div组件](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-container-div.md)的flex-warp样式设置为wrap来使用折行能力。
> 类Web开发范式通过将[div组件](
../..
/reference/arkui-js/js-components-container-div.md)的flex-warp样式设置为wrap来使用折行能力。
**示例:**
**示例:**
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/appgallery-home-page.md
浏览文件 @
5e40cd0f
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
## 底部/侧边导航栏
## 底部/侧边导航栏
在sm和md断点下,导航栏在底部;在lg断点下,导航栏在左侧。可以通过
[
Tab组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-tabs.md
)
的barPosition和vertical属性控制TabBar的位置,同时还可以通过barWidth和barHeight属性控制TabBar的尺寸。
在sm和md断点下,导航栏在底部;在lg断点下,导航栏在左侧。可以通过
[
Tab组件
](
../..
/reference/arkui-ts/ts-container-tabs.md
)
的barPosition和vertical属性控制TabBar的位置,同时还可以通过barWidth和barHeight属性控制TabBar的尺寸。
```
```
...
@@ -121,7 +121,7 @@ export default struct IndexHeader {
...
@@ -121,7 +121,7 @@ export default struct IndexHeader {
## 运营横幅
## 运营横幅
不同断点下的运营横幅,sm断点下显示一张图片,md断点下显示两张图片,lg断点下显示三张图片。可以通过
[
Swiper组件的displayCount属性
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-swiper.md
)
实现目标效果。
不同断点下的运营横幅,sm断点下显示一张图片,md断点下显示两张图片,lg断点下显示三张图片。可以通过
[
Swiper组件的displayCount属性
](
../..
/reference/arkui-ts/ts-container-swiper.md
)
实现目标效果。
```
```
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/architecture-design.md
已删除
100644 → 0
浏览文件 @
55be4fac
# 应用架构设计
-
**[应用导航结构设计要求](navigation-design.md)**
-
**[应用页面结构设计](page-design.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/case.md
浏览文件 @
5e40cd0f
...
@@ -103,7 +103,7 @@
...
@@ -103,7 +103,7 @@
-
alignItems: ItemAlign.Start:子组件在Flex容器交叉轴(水平方向)上首部对齐。
-
alignItems: ItemAlign.Start:子组件在Flex容器交叉轴(水平方向)上首部对齐。
可以查看
[
Flex组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-flex.md
)
及
[
Text组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-components-text.md
)
了解这两个组件各个属性的含义及详细用法。
可以查看
[
Flex组件
](
../../reference/arkui-ts/ts-container-flex.md
)
及
[
Text组件
](
../..
/reference/arkui-ts/ts-basic-components-text.md
)
了解这两个组件各个属性的含义及详细用法。
| 默认设备 | 平板 |
| 默认设备 | 平板 |
| -------- | -------- |
| -------- | -------- |
...
@@ -123,7 +123,7 @@
...
@@ -123,7 +123,7 @@
}
}
```
```
接下来我们通过width属性和height属性设置四个图标的宽高(详见
[
尺寸设置
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-size.md
)
),并将它们与联系人姓名和电话以及Blank组件一起放到Flex父容器中。为了便于查看效果,对顶部标题栏设置了淡蓝色的背景色。
接下来我们通过width属性和height属性设置四个图标的宽高(详见
[
尺寸设置
](
../..
/reference/arkui-ts/ts-universal-attributes-size.md
)
),并将它们与联系人姓名和电话以及Blank组件一起放到Flex父容器中。为了便于查看效果,对顶部标题栏设置了淡蓝色的背景色。
| 默认设备 | 平板 |
| 默认设备 | 平板 |
| -------- | -------- |
| -------- | -------- |
...
@@ -161,7 +161,7 @@
...
@@ -161,7 +161,7 @@
}
}
```
```
当前标题栏中子组件的布局同预期还有些差异,接下来通过margin属性,设置各个元素的左右间距(详见
[
尺寸设置
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-size.md
)
)。如下图所示,最终顶部工具栏在默认设备和平板上都可以达到预期显示效果。
当前标题栏中子组件的布局同预期还有些差异,接下来通过margin属性,设置各个元素的左右间距(详见
[
尺寸设置
](
../..
/reference/arkui-ts/ts-universal-attributes-size.md
)
)。如下图所示,最终顶部工具栏在默认设备和平板上都可以达到预期显示效果。
| 默认设备 | 平板 |
| 默认设备 | 平板 |
| -------- | -------- |
| -------- | -------- |
...
@@ -205,11 +205,11 @@
...
@@ -205,11 +205,11 @@
### 底部输入栏
### 底部输入栏
有了顶部工具栏的开发经验,可以发现底部输入栏的结构更为简单,它同样以Flex组件作为父容器,同时包含文本输入框(请访问
[
文本输入组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-components-textarea.md
)
查看详细介绍)和消息发送图标两个子节点。
有了顶部工具栏的开发经验,可以发现底部输入栏的结构更为简单,它同样以Flex组件作为父容器,同时包含文本输入框(请访问
[
文本输入组件
](
../..
/reference/arkui-ts/ts-basic-components-textarea.md
)
查看详细介绍)和消息发送图标两个子节点。


为了便于查看的效果,我们同样给底部输入栏设置了淡蓝色到背景色。注意这里有一个特殊的地方,我们给TextArea设置了flexGrow(1)属性。flexGrow属性仅在父组件是Flex组件时生效,表示Flex容器的剩余空间分配给此属性所在的组件的比例,flexGrow(1)表示父容器的剩余空间全部分配给此组件,详见
[
Flex布局
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-flex-layout.md
)
。
为了便于查看的效果,我们同样给底部输入栏设置了淡蓝色到背景色。注意这里有一个特殊的地方,我们给TextArea设置了flexGrow(1)属性。flexGrow属性仅在父组件是Flex组件时生效,表示Flex容器的剩余空间分配给此属性所在的组件的比例,flexGrow(1)表示父容器的剩余空间全部分配给此组件,详见
[
Flex布局
](
../..
/reference/arkui-ts/ts-universal-attributes-flex-layout.md
)
。
| 默认设备 | 平板 |
| 默认设备 | 平板 |
| -------- | -------- |
| -------- | -------- |
...
@@ -258,7 +258,7 @@
...
@@ -258,7 +258,7 @@
**消息气泡**
**消息气泡**
先做一个最简单的消息气泡,通过borderRadius属性可以设置边框的圆角半径(详见
[
边框设置
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-border.md
)
)。
先做一个最简单的消息气泡,通过borderRadius属性可以设置边框的圆角半径(详见
[
边框设置
](
../..
/reference/arkui-ts/ts-universal-attributes-border.md
)
)。
| 默认设备 | 平板 |
| 默认设备 | 平板 |
| -------- | -------- |
| -------- | -------- |
...
@@ -290,7 +290,7 @@ struct MessageBubble {
...
@@ -290,7 +290,7 @@ struct MessageBubble {
注意这个简单的消息气泡,左上角(或右上角)的样式,与实际期望不符。我们先修改发送消息右上角的样式,接收消息左上角的实现与之类似。
注意这个简单的消息气泡,左上角(或右上角)的样式,与实际期望不符。我们先修改发送消息右上角的样式,接收消息左上角的实现与之类似。
[
Stack组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-stack.md
)
是一个堆叠容器,其子组件按照轴方向依次堆叠,后一个子组件覆盖前一个子组件。通过其alignContent接口,可以设置子组件在容器内的对齐方式,如alignContent: Alignment.TopStart代表子组件从左上角对齐。
[
Stack组件
](
../..
/reference/arkui-ts/ts-container-stack.md
)
是一个堆叠容器,其子组件按照轴方向依次堆叠,后一个子组件覆盖前一个子组件。通过其alignContent接口,可以设置子组件在容器内的对齐方式,如alignContent: Alignment.TopStart代表子组件从左上角对齐。
| 默认设备 | 平板 |
| 默认设备 | 平板 |
| -------- | -------- |
| -------- | -------- |
...
@@ -455,7 +455,7 @@ const globalMessageList:any[] = [
...
@@ -455,7 +455,7 @@ const globalMessageList:any[] = [
]
]
```
```
结合
[
栅格组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-gridcontainer.md
)
的定义,考虑我们当前的实际场景,GridRow的各参数设置如下。
结合
[
栅格组件
](
../..
/reference/arkui-ts/ts-container-gridcontainer.md
)
的定义,考虑我们当前的实际场景,GridRow的各参数设置如下。
-
columns:栅格组件中的列数,当前场景默认12列即可。
-
columns:栅格组件中的列数,当前场景默认12列即可。
...
@@ -524,9 +524,9 @@ struct Conversation {
...
@@ -524,9 +524,9 @@ struct Conversation {
现在会话详情页面的顶部标题栏、信息列表及底部输入栏都已经准备完毕,将这三部分组合起来即可得到完整的页面。
现在会话详情页面的顶部标题栏、信息列表及底部输入栏都已经准备完毕,将这三部分组合起来即可得到完整的页面。
-
通过
[
Flex组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-flex.md
)
将三个部分组合起来,注意justifyContent: FlexAlign.SpaceBetween配置项是将Flex组件中的元素按照主轴方向均匀分配,其中第一个元素与顶部对齐,最后一个元素与底部对齐。
-
通过
[
Flex组件
](
../..
/reference/arkui-ts/ts-container-flex.md
)
将三个部分组合起来,注意justifyContent: FlexAlign.SpaceBetween配置项是将Flex组件中的元素按照主轴方向均匀分配,其中第一个元素与顶部对齐,最后一个元素与底部对齐。
-
通过
[
List组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md
)
和
[
ForEach语法
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/ui/ts-rending-control-syntax-foreach.md
)
,显示整个消息列表。
-
通过
[
List组件
](
../../reference/arkui-ts/ts-container-list.md
)
和
[
ForEach语法
](
../..
/ui/ts-rending-control-syntax-foreach.md
)
,显示整个消息列表。
| 默认设备 | 平板 |
| 默认设备 | 平板 |
| -------- | -------- |
| -------- | -------- |
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/faq.md
浏览文件 @
5e40cd0f
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
```
```
2.
在应用开发过程中查询设备类型。
2.
在应用开发过程中查询设备类型。
-
通过js接口查询指定系统参数(const.build.characteristics)进而确定设备类型,详见
[
系统属性
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/apis/js-apis-system-parameter.md
)
。
-
通过js接口查询指定系统参数(const.build.characteristics)进而确定设备类型,详见
[
系统属性
](
../..
/reference/apis/js-apis-system-parameter.md
)
。
```
typescript
```
typescript
import
parameter
from
'
@ohos.systemparameter
'
import
parameter
from
'
@ohos.systemparameter
'
...
@@ -44,7 +44,7 @@
...
@@ -44,7 +44,7 @@
}
}
}
}
```
```
-
通过deviceInfo查询设备类型,deviceInfo中各个字段的含义请参考
[
设备信息
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/apis/js-apis-device-info.md
)
。
-
通过deviceInfo查询设备类型,deviceInfo中各个字段的含义请参考
[
设备信息
](
../..
/reference/apis/js-apis-device-info.md
)
。
```
typescript
```
typescript
import
deviceInfo
from
'
@ohos.deviceInfo
'
import
deviceInfo
from
'
@ohos.deviceInfo
'
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
## 如何在不同设备上为Ability配置不同的启动模式
## 如何在不同设备上为Ability配置不同的启动模式
应用由一个或多个Ability组成,Ability支持单实例、多实例和指定实例3种
[
启动模式
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/stage-ability.md#%E5%90%AF%E5%8A%A8%E6%A8%A1%E5%BC%8F
)
,启动模式可以在
[
配置文件(module.json5)
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/quick-start/stage-structure.md
)
中通过launchType字段配置。启动模式对应Ability被启动时的行为,对启动模式的详细说明如下:
应用由一个或多个Ability组成,Ability支持单实例、多实例和指定实例3种
[
启动模式
](
../../ability/stage-ability.md#%E5%90%AF%E5%8A%A8%E6%A8%A1%E5%BC%8F
)
,启动模式可以在
[
配置文件(module.json5)
](
../..
/quick-start/stage-structure.md
)
中通过launchType字段配置。启动模式对应Ability被启动时的行为,对启动模式的详细说明如下:
| 启动模式 | 描述 | 说明 |
| 启动模式 | 描述 | 说明 |
| -------- | -------- | -------- |
| -------- | -------- | -------- |
...
@@ -147,7 +147,7 @@ hdc shell reboot
...
@@ -147,7 +147,7 @@ hdc shell reboot
自适应布局可以保证窗口尺寸在一定范围内变化时,页面的显示是正常的。当窗口尺寸变化较大时,就需要额外借助响应式布局能力(如断点等)调整页面结构以保证显示正常。通常每个断点都需要开发者精心适配以获得最佳的显示效果,考虑到设计及开发成本等实际因素的限制,应用不可能适配从零到正无穷的所有窗口宽度。
自适应布局可以保证窗口尺寸在一定范围内变化时,页面的显示是正常的。当窗口尺寸变化较大时,就需要额外借助响应式布局能力(如断点等)调整页面结构以保证显示正常。通常每个断点都需要开发者精心适配以获得最佳的显示效果,考虑到设计及开发成本等实际因素的限制,应用不可能适配从零到正无穷的所有窗口宽度。
不同设备或不同设备状态,系统默认的自由窗口尺寸的调节范围可能不同。开发者可以在
[
应用配置文件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/quick-start/stage-structure.md
)
中限制应用中各个Ability的自由窗口尺寸调节范围,配置文件中影响自由窗口尺寸调节范围的字段如下表所示。
不同设备或不同设备状态,系统默认的自由窗口尺寸的调节范围可能不同。开发者可以在
[
应用配置文件
](
../..
/quick-start/stage-structure.md
)
中限制应用中各个Ability的自由窗口尺寸调节范围,配置文件中影响自由窗口尺寸调节范围的字段如下表所示。
| 配置文件字段 | 数据类型 | 描述 |
| 配置文件字段 | 数据类型 | 描述 |
| -------- | -------- | -------- |
| -------- | -------- | -------- |
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录