Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
a74cca26
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
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看板
提交
a74cca26
编写于
9月 28, 2022
作者:
Z
zengyawen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update docs
Signed-off-by:
N
zengyawen
<
zengyawen1@huawei.com
>
上级
cf963ce1
变更
22
展开全部
隐藏空白更改
内联
并排
Showing
22 changed file
with
115 addition
and
210 deletion
+115
-210
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/design-checklist.md
...dev/key-features/multi-device-app-dev/design-checklist.md
+17
-17
zh-cn/application-dev/key-features/multi-device-app-dev/faq.md
.../application-dev/key-features/multi-device-app-dev/faq.md
+5
-5
zh-cn/application-dev/key-features/multi-device-app-dev/ide-using.md
...cation-dev/key-features/multi-device-app-dev/ide-using.md
+2
-2
zh-cn/application-dev/key-features/multi-device-app-dev/interaction-event-normalization.md
...s/multi-device-app-dev/interaction-event-normalization.md
+7
-7
zh-cn/application-dev/key-features/multi-device-app-dev/interface-layout-design.md
...-features/multi-device-app-dev/interface-layout-design.md
+0
-9
zh-cn/application-dev/key-features/multi-device-app-dev/introduction.md
...ion-dev/key-features/multi-device-app-dev/introduction.md
+2
-2
zh-cn/application-dev/key-features/multi-device-app-dev/layout-design-basics.md
...key-features/multi-device-app-dev/layout-design-basics.md
+0
-9
zh-cn/application-dev/key-features/multi-device-app-dev/layout-intro.md
...ion-dev/key-features/multi-device-app-dev/layout-intro.md
+11
-2
zh-cn/application-dev/key-features/multi-device-app-dev/layout.md
...plication-dev/key-features/multi-device-app-dev/layout.md
+0
-13
zh-cn/application-dev/key-features/multi-device-app-dev/man-machine-interaction.md
...-features/multi-device-app-dev/man-machine-interaction.md
+0
-9
zh-cn/application-dev/key-features/multi-device-app-dev/page-development-intro.md
...y-features/multi-device-app-dev/page-development-intro.md
+3
-18
zh-cn/application-dev/key-features/multi-device-app-dev/page-development.md
...dev/key-features/multi-device-app-dev/page-development.md
+0
-13
zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md
...n-dev/key-features/multi-device-app-dev/resource-usage.md
+3
-3
zh-cn/application-dev/key-features/multi-device-app-dev/responsive-layout.md
...ev/key-features/multi-device-app-dev/responsive-layout.md
+17
-7
zh-cn/application-dev/key-features/multi-device-app-dev/typical-layout-scenario.md
...-features/multi-device-app-dev/typical-layout-scenario.md
+8
-8
zh-cn/application-dev/key-features/multi-device-app-dev/typical-page-layout.md
.../key-features/multi-device-app-dev/typical-page-layout.md
+0
-7
zh-cn/application-dev/key-features/multi-device-app-dev/ux-design.md
...cation-dev/key-features/multi-device-app-dev/ux-design.md
+0
-21
zh-cn/application-dev/key-features/multi-device-app-dev/visual-style.md
...ion-dev/key-features/multi-device-app-dev/visual-style.md
+0
-11
未找到文件。
zh-cn/application-dev/key-features/multi-device-app-dev/adaptive-layout.md
浏览文件 @
a74cca26
此差异已折叠。
点击以展开。
zh-cn/application-dev/key-features/multi-device-app-dev/appgallery-home-page.md
浏览文件 @
a74cca26
...
...
@@ -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 {
## 运营横幅
不同断点下的运营横幅,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
浏览文件 @
cf963ce1
# 应用架构设计
-
**[应用导航结构设计要求](navigation-design.md)**
-
**[应用页面结构设计](page-design.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/case.md
浏览文件 @
a74cca26
...
...
@@ -103,7 +103,7 @@
-
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 @@
}
```
接下来我们通过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 @@
}
```
当前标题栏中子组件的布局同预期还有些差异,接下来通过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 @@
### 底部输入栏
有了顶部工具栏的开发经验,可以发现底部输入栏的结构更为简单,它同样以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 @@
**消息气泡**
先做一个最简单的消息气泡,通过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 {
注意这个简单的消息气泡,左上角(或右上角)的样式,与实际期望不符。我们先修改发送消息右上角的样式,接收消息左上角的实现与之类似。
[
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[] = [
]
```
结合
[
栅格组件
](
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列即可。
...
...
@@ -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/design-checklist.md
浏览文件 @
a74cca26
...
...
@@ -4,24 +4,24 @@
设计自检表详细列举出了在全场景设备设计和开发过程中应当注意的设计规则,这将帮助应用减少用户舆情且提升用户体验的一致性。
自检表的要求范围分为“必
须”与“推荐”两个类别。必须
类一般为已总结出的较优解决方案或效果,表示相关设计需要按照此原则统一执行;推荐类指可能受应用品牌风格或业务特殊性影响,可适量做出修改。
自检表的要求范围分为“必
选”与“推荐”两类。必选
类一般为已总结出的较优解决方案或效果,表示相关设计需要按照此原则统一执行;推荐类指可能受应用品牌风格或业务特殊性影响,可适量做出修改。
请参考以下表格范围内提出的要求对应用进行检查。
|
**类型**
|
**条目**
|
**说明**
|
**类别**
|
| -------- | ------------------ | ------------------------------------------------------------ | ------ |
| 应用架构 | 导航结构 | 在各设备上页面导航结构保持一致(同时出多个设备的UX设计)。 | 推荐 |
| 布局 | 拉通设计 | 拉通各设备的布局设计,保证在不同尺寸和分辨率的设备上能够无错位/不截断/不变形/不过多空白(50%以上)/不过于拥挤(间距小于16vp,明显截断)/无大图大字体地正常显示。 | 必须 |
| | 响应式设计 | 栅格布局只能占N列以及N列内部的Gutter,不包含N列两侧的Gutter。 | 必须 |
| | 响应式设计 | 明确标注使用什么类型的栅格、给出在不同断点下栅格三要素取值。 | 推荐 |
| | 响应式设计 | 按容器去对齐栅格,而不是内部子元素对齐栅格。 | 必须 |
| | 响应式设计 | 栅格除了页面布局设计外,在做局部栅格设计时,需要通过明显方式如颜色等进行标注区分,避免混淆。 | 推荐 |
| | 响应式设计 | 禁止出现标注了栅格但实际没有通过栅格进行布局设计,避免混淆。 | 必须 |
| | 自适应设计 | 非栅格设计场景下,明确标注自适应布局能力。自适应布局能力有:拉伸、均分、占比、缩放、延伸、隐藏、折行。 | 推荐 |
| 人机交互 | 输入方式 | 需保证在各设备上完整支持触摸、鼠标、触控、键盘、遥控器、摇杆等交互方式,并符合标准定义。 | 推荐 |
| | 交互归一 | 应使用系统提供的控件以达到一致的交互体验。如有定制,需保证在各场景下,不同输入设备上的操作与指南要求一致。需特别注意鼠标行为。 | 推荐 |
| 视觉风格 | 单位 | 用于界面布局的单位应全部使用vp。只针对严格控制元素尺寸的场景使用px。 | 必须 |
| | 色彩 | 用于色彩的赋值应使用分层参数。推荐支持深色模式,需保证界面在系统切换色彩模式时没有识别性问题。 | 推荐 |
| | 字体 | 使用fp为文字大小单位,需要响应系统大字体模式,确保系统调节字体大小后,界面字体能响应变化大小,并且界面布局没有出现布局错乱问题。 | 必须 |
| 多态控件 | 支持常用的控件状态 | 确保控件不同状态下的视觉效果没有缺失。控件的常用状态有:正常态、不可用态、点击态、获焦态、激活态、悬停态。 | 推荐 |
\ No newline at end of file
|
**类型**
|
**条目**
|
**说明**
|
| -------- | ------------------ | ------------------------------------------------------------ |
| 应用架构 | 导航结构 | 在各设备上页面导航结构保持一致(同时出多个设备的UX设计)。 |
| 布局 | 拉通设计 | 拉通各设备的布局设计,保证在不同尺寸和分辨率的设备上能够无错位/不截断/不变形/不过多空白(50%以上)/不过于拥挤(间距小于16vp,明显截断)/无大图大字体地正常显示。 |
| | 响应式设计 | 栅格布局只能占N列以及N列内部的Gutter,不包含N列两侧的Gutter。 |
| | 响应式设计 | 明确标注使用什么类型的栅格、给出在不同断点下栅格三要素取值。 |
| | 响应式设计 | 按容器去对齐栅格,而不是内部子元素对齐栅格。 |
| | 响应式设计 | 栅格除了页面布局设计外,在做局部栅格设计时,需要通过明显方式如颜色等进行标注区分,避免混淆。 |
| | 响应式设计 | 禁止出现标注了栅格但实际没有通过栅格进行布局设计,避免混淆。 |
| | 自适应设计 | 非栅格设计场景下,明确标注自适应布局能力。自适应布局能力有:拉伸、均分、占比、缩放、延伸、隐藏、折行。 |
| 人机交互 | 输入方式 | 需保证在各设备上完整支持触摸、鼠标、触控、键盘、遥控器、摇杆等交互方式,并符合标准定义。 |
| | 交互归一 | 应使用系统提供的控件以达到一致的交互体验。如有定制,需保证在各场景下,不同输入设备上的操作与指南要求一致。需特别注意鼠标行为。 |
| 视觉风格 | 单位 | 用于界面布局的单位应全部使用vp。只针对严格控制元素尺寸的场景使用px。 |
| | 色彩 | 用于色彩的赋值应使用分层参数。推荐支持深色模式,需保证界面在系统切换色彩模式时没有识别性问题。 |
| | 字体 | 使用fp为文字大小单位,需要响应系统大字体模式,确保系统调节字体大小后,界面字体能响应变化大小,并且界面布局没有出现布局错乱问题。 |
| 多态控件 | 支持常用的控件状态 | 确保控件不同状态下的视觉效果没有缺失。控件的常用状态有:正常态、不可用态、点击态、获焦态、激活态、悬停态。 |
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/faq.md
浏览文件 @
a74cca26
...
...
@@ -6,7 +6,7 @@
设备类型分为default(默认设备)、tablet、tv、wearable等,有多种查询设备类型的方式。
1.
通过命令行的方式查询设备类型。
通过命令行查询指定系统参数(const.build.characteristics)进而确定设备类型,详见
[
系统参数介绍
](
https://gitee.com/openharmony/docs/blob/master/zh-cn
/device-dev/subsystems/subsys-boot-init-sysparam.md
)
。
通过命令行查询指定系统参数(const.build.characteristics)进而确定设备类型,详见
[
系统参数介绍
](
../../..
/device-dev/subsystems/subsys-boot-init-sysparam.md
)
。
```
shell
...
...
@@ -17,7 +17,7 @@
```
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
import
parameter
from
'
@ohos.systemparameter
'
...
...
@@ -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
import
deviceInfo
from
'
@ohos.deviceInfo
'
...
...
@@ -71,7 +71,7 @@
## 如何在不同设备上为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
自适应布局可以保证窗口尺寸在一定范围内变化时,页面的显示是正常的。当窗口尺寸变化较大时,就需要额外借助响应式布局能力(如断点等)调整页面结构以保证显示正常。通常每个断点都需要开发者精心适配以获得最佳的显示效果,考虑到设计及开发成本等实际因素的限制,应用不可能适配从零到正无穷的所有窗口宽度。
不同设备或不同设备状态,系统默认的自由窗口尺寸的调节范围可能不同。开发者可以在
[
应用配置文件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/quick-start/stage-structure.md
)
中限制应用中各个Ability的自由窗口尺寸调节范围,配置文件中影响自由窗口尺寸调节范围的字段如下表所示。
不同设备或不同设备状态,系统默认的自由窗口尺寸的调节范围可能不同。开发者可以在
[
应用配置文件
](
../..
/quick-start/stage-structure.md
)
中限制应用中各个Ability的自由窗口尺寸调节范围,配置文件中影响自由窗口尺寸调节范围的字段如下表所示。
| 配置文件字段 | 数据类型 | 描述 |
| -------- | -------- | -------- |
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/ide-using.md
浏览文件 @
a74cca26
# 工程管理
DevEco Studio的基本使用,请参考
[
DevEco Studio使用指南
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/quick-start/deveco-studio-user-guide-for-openharmony.md
)
。本章主要介绍如何使用DevEco Studio进行多设备应用开发。
DevEco Studio的基本使用,请参考
[
DevEco Studio使用指南
](
../..
/quick-start/deveco-studio-user-guide-for-openharmony.md
)
。本章主要介绍如何使用DevEco Studio进行多设备应用开发。
>  **说明:**
...
...
@@ -75,7 +75,7 @@ DevEco Studio的基本使用,请参考[DevEco Studio使用指南](https://gite
### 修改Module类型及其设备类型
通过修改每个模块中的配置文件(module.json5)对模块进行配置,配置文件中各字段含义详见
[
配置文件说明
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/quick-start/stage-structure.md
)
。
通过修改每个模块中的配置文件(module.json5)对模块进行配置,配置文件中各字段含义详见
[
配置文件说明
](
../..
/quick-start/stage-structure.md
)
。
-
将default模块的deviceTypes配置为["phone", "tablet"],同时将其type字段配置为entry。
即default模块编译出的hap包在默认设备和平板上安装和运行。
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/interaction-event-normalization.md
浏览文件 @
a74cca26
...
...
@@ -14,13 +14,13 @@
| 输入 | 开发接口 | 触控屏 | 鼠标 | 触控板 |
| -------- | -------- | -------- | -------- | -------- |
| 点击 |
[
onClick
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-events-click.md
)
| √ | √ | √ |
| 长按 |
[
LongPressGesture
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-gestures-longpressgesture.md
)
| √ | √ | × |
| 双击 |
[
TapGesture
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-gestures-tapgesture.md
)
| √ | √ | √ |
| 轻扫 |
[
SwipeGesture
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-gestures-swipegesture.md
)
| √ | √ | √ |
| 滚动及平移 |
[
PanGesture
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-gestures-pangesture.md
)
| √ | √ | √ |
| 缩放 |
[
PinchGesture
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-gestures-pinchgesture.md
)
| √ | √ | √ |
| 旋转 |
[
RotationGesture
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-gestures-rotationgesture.md
)
| √ | NA | √ |
| 点击 |
[
onClick
](
../..
/reference/arkui-ts/ts-universal-events-click.md
)
| √ | √ | √ |
| 长按 |
[
LongPressGesture
](
../..
/reference/arkui-ts/ts-basic-gestures-longpressgesture.md
)
| √ | √ | × |
| 双击 |
[
TapGesture
](
../..
/reference/arkui-ts/ts-basic-gestures-tapgesture.md
)
| √ | √ | √ |
| 轻扫 |
[
SwipeGesture
](
../..
/reference/arkui-ts/ts-basic-gestures-swipegesture.md
)
| √ | √ | √ |
| 滚动及平移 |
[
PanGesture
](
../..
/reference/arkui-ts/ts-basic-gestures-pangesture.md
)
| √ | √ | √ |
| 缩放 |
[
PinchGesture
](
../..
/reference/arkui-ts/ts-basic-gestures-pinchgesture.md
)
| √ | √ | √ |
| 旋转 |
[
RotationGesture
](
../..
/reference/arkui-ts/ts-basic-gestures-rotationgesture.md
)
| √ | NA | √ |
>  **说明:**
> - 点击事件(onClick)其实是点击手势(TapGesture)的一个特殊场景(单指单次点击)。该场景使用的非常广泛,为了方便开发者使用及符合传统开发习惯,所以专门提供了开发接口。
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/interface-layout-design.md
已删除
100644 → 0
浏览文件 @
cf963ce1
# 界面布局
-
**[概述](interface-layout-design-intro.md)**
-
**[布局基础](layout-design-basics.md)**
-
**[布局基础运用案例](design-layout-cases.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/introduction.md
浏览文件 @
a74cca26
...
...
@@ -50,7 +50,7 @@ HAP包是OpenHarmony的安装包,一个HAP在工程目录中对应一个Module
>  **说明:**
> - Module是开发者开发的相对独立的功能模块,由代码、资源、第三方库及应用配置文件组成,属于IDE开发视图的概念。Module分为entry、feature及har三种类型,相应的可以编译生成entry类型的HAP包、feature类型的HAP包,以及har包。
>
> - 如果需要了解应用程序包结构更多详情,可以查看[包结构说明](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/quick-start/package-structure.md)。
> - 如果需要了解应用程序包结构更多详情,可以查看[包结构说明](
../..
/quick-start/package-structure.md)。
### 方舟开发框架
...
...
@@ -73,7 +73,7 @@ OpenHarmony提供了方舟开发框架(简称:ArkUI),提供开发者进
>  **说明:**
> - 声明式开发范式占用内存更少,**更推荐开发者选用声明式开发范式来搭建应用UI界面**。
>
> - 可以查看[方舟开发框架概述](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/ui/arkui-overview.md),了解方舟开发框架更多详情。
> - 可以查看[方舟开发框架概述](
../..
/ui/arkui-overview.md),了解方舟开发框架更多详情。
### 部署模型
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/layout-design-basics.md
已删除
100644 → 0
浏览文件 @
cf963ce1
# 布局基础
-
**[栅格系统](design-grid.md)**
-
**[自适应布局](design-adaptive-layout.md)**
-
**[响应式布局](design-responsive-layout.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/layout-intro.md
浏览文件 @
a74cca26
...
...
@@ -13,11 +13,11 @@
自适应布局和响应式布局常常需要借助容器类组件实现,或与容器类组件搭配使用。
-
自适应布局常常需要借助
[
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
)
实现。
-
自适应布局常常需要借助
[
Row组件
](
../../reference/arkui-ts/ts-container-row.md
)
、
[
Column组件
](
../../reference/arkui-ts/ts-container-column.md
)
或
[
Flex组件
](
../..
/reference/arkui-ts/ts-container-flex.md
)
实现。
!
[
image-20220922185907892
](
figures/image-20220922185907892.png
)
-
响应式布局常常与
[
GridRow组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-gridrow.md
)
、
[
Grid组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-grid.md
)
、
[
List组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md
)
、
[
Swiper组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-swiper.md
)
或
[
Tabs组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-tabs.md
)
搭配使用。
-
响应式布局常常与
[
GridRow组件
](
../../reference/arkui-ts/ts-container-gridrow.md
)
、
[
Grid组件
](
../../reference/arkui-ts/ts-container-grid.md
)
、
[
List组件
](
../../reference/arkui-ts/ts-container-list.md
)
、
[
Swiper组件
](
../../reference/arkui-ts/ts-container-swiper.md
)
或
[
Tabs组件
](
../..
/reference/arkui-ts/ts-container-tabs.md
)
搭配使用。
!
[
image-20220922190217247
](
figures/image-20220922190217247.png
)
...
...
@@ -25,4 +25,13 @@
接下来将依次介绍自适应布局和响应式布局,同时结合实际,通过典型布局场景以及典型页面场景详细介绍两种布局能力的用法。
## 相关实例
针对一次开发,多端部署,有以下相关实例可供参考:
-
[
`MusicAlbum`:一多音乐专辑主页(eTS)(API9)
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/MusicAlbum
)
-
[
`AppMarket`:一多应用市场首页(eTS)(API9)
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/AppMarket
)
-
[
`AdaptiveCapabilities`:多设备自适应能力(eTS)(API9)
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/AdaptiveCapabilities
)
-
[
`JsAdaptiveCapabilities`:多设备自适应能力(JS)(API8)
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/JsAdaptiveCapabilities
)
-
[
一次开发多端部署(eTS)(API8)
](
https://gitee.com/openharmony/codelabs/tree/master/ETSUI/MultiDeploymentEts
)
zh-cn/application-dev/key-features/multi-device-app-dev/layout.md
已删除
100644 → 0
浏览文件 @
cf963ce1
# 布局能力
-
**[布局简介](layout-intro.md)**
-
**[自适应布局](adaptive-layout.md)**
-
**[响应式布局](responsive-layout.md)**
-
**[典型布局场景](typical-layout-scenario.md)**
-
**[典型页面场景](typical-page-layout.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/man-machine-interaction.md
已删除
100644 → 0
浏览文件 @
cf963ce1
# 人机交互
-
**[交互基础](interaction-basics.md)**
-
**[常见输入方式](common-input-modes.md)**
-
**[交互事件归一](design-interaction-event-normalization.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/page-development-intro.md
浏览文件 @
a74cca26
...
...
@@ -19,21 +19,6 @@
>  **说明:**
> 开发多设备上同一页面时,建议开发者多使用[自定义组件](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/ts-component-based-component.md),既可以增加代码的可读性和可维护性,同时也可以尽可能的实现代码复用。
## 相关示例
[
OpenHarmony应用示例
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev
)
中提供了如下一多示例,感兴趣的开发者可以自行下载、运行及查看效果。
| 示例名称 | 开发范式 | 简介 |
| ------------------------------------------------------------ | -------------- | ------------------------------------------------------------ |
|
[
页面开发一多能力
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/AdaptiveCapabilities
)
| 声明式开发范式 | 本章配套的示例代码,包括自适应布局、响应式布局、典型布局场景以及资源文件使用等。 |
|
[
页面开发一多能力
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/JsAdaptiveCapabilities
)
| 类Web开发范式 | 本章配套的示例代码,包括自适应布局、响应式布局及资源文件使用等。 |
|
[
应用市场首页
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/AppMarket
)
| 声明式开发范式 | 本章配套的示例代码,以应用市场首页为例,演示如何使用一多能力适配多设备(或多窗口尺寸)。 |
|
[
音乐专辑页
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/MusicAlbum
)
| 声明式开发范式 | 本章配套的示例代码,以音乐专辑页为例,演示如何使用一多能力适配多设备(或多窗口尺寸)。 |
|
[
蔬菜百科首页
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/Vegetable
)
| 声明式开发范式 | 一多示例页面,以蔬菜百科首页为例,演示如何使用一多能力适配多设备(或多窗口尺寸)。 |
|
[
天气
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/Weather
)
| 声明式开发范式 | 一多示例应用,以天气应用为例,演示如何使用一多能力实现包含多个页面的应用。 |
> - 开发多设备上同一页面时,建议开发者多使用[自定义组件](../../ui/ts-component-based-component.md),既可以增加代码的可读性和可维护性,同时也可以尽可能的实现代码复用。
>
> - 本章中涉及的示例代码均可以在[OpenHarmony应用示例](https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev)中获取,感兴趣的开发者可以自行下载、运行及查看效果。
zh-cn/application-dev/key-features/multi-device-app-dev/page-development.md
已删除
100644 → 0
浏览文件 @
cf963ce1
# 页面开发的一多能力介绍
-
**[简介](page-development-intro.md)**
-
**[布局能力](layout.md)**
-
**[交互归一](interaction-event-normalization.md)**
-
**[多态组件](polymorphic-controls.md)**
-
**[资源使用](resource-usage.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/resource-usage.md
浏览文件 @
a74cca26
...
...
@@ -35,11 +35,11 @@ resources
base目录默认存在,而限定词目录需要开发者自行创建,其名称可以由一个或多个表征应用场景或设备特征的限定词组合而成。应用使用某资源时,系统会根据当前设备状态优先从相匹配的限定词目录中寻找该资源。只有当resources目录中没有与设备状态匹配的限定词目录,或者在限定词目录中找不到该资源时,才会去base目录中查找。rawfile是原始文件目录,它不会根据设备状态去匹配不同的资源,故不在本文的讨论范文内。
>  **说明:**
> - 请访问[声明式开发范式资源文件分类](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/ui/ui-ts-basic-resource-file-categories.md),了解限定词目录的命名规则、创建流程、匹配规则等,本文不展开介绍。
> - 请访问[声明式开发范式资源文件分类](
../..
/ui/ui-ts-basic-resource-file-categories.md),了解限定词目录的命名规则、创建流程、匹配规则等,本文不展开介绍。
>
> - 没有设备状态匹配的限定词目录,或者在限定词目录中找不到目标资源时,会继续在base目录中查找。**强烈建议对于所有应用自定义资源都在base目录中定义默认值**,防止出现找不到资源值的异常场景。
>
> - 类Web开发范式的资源文件路径及资源限定词的使用与声明式范式不同,详情请参考[类Web开发范式资源限定与访问](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/js-framework-resource-restriction.md)及[类Web开发范式文件组织](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/ui/js-framework-file.md)。
> - 类Web开发范式的资源文件路径及资源限定词的使用与声明式范式不同,详情请参考[类Web开发范式资源限定与访问](
../../ui/js-framework-resource-restriction.md)及[类Web开发范式文件组织](../..
/ui/js-framework-file.md)。
base目录与限定词目录下面可以创建资源组目录(包括element、media等),用于存放特定类型的资源文件。
...
...
@@ -73,7 +73,7 @@ base目录与限定词目录下面可以创建资源组目录(包括element、
在工程中,通过 "$r('app.type.name')" 的形式引用应用资源。app代表是应用内resources目录中定义的资源;type 代表资源类型(或资源的存放位置),可以取 color、float、string、plural和media,name代表资源命名,由开发者添加资源时确定。
>  **说明:**
> 可以查看[声明式范式访问应用资源](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/ui/ts-resource-access.md),了解资源访问的更多细节。
> 可以查看[声明式范式访问应用资源](
../..
/ui/ts-resource-access.md),了解资源访问的更多细节。
### 示例
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/responsive-layout.md
浏览文件 @
a74cca26
...
...
@@ -45,7 +45,7 @@ OpenHarmony提供了多种方法,判断应用当前处于何种断点,进而
通过窗口对象监听断点变化的核心是获取窗口对象及注册窗口尺寸变化的回调函数。
1.
在Ability的
[
onWindowStageCreate
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/stage-ability.md
)
生命周期回调中,获取并记录
[
窗口
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/apis/js-apis-window.md
)
对象。
1.
在Ability的
[
onWindowStageCreate
](
../../ability/stage-ability.md
)
生命周期回调中,获取并记录
[
窗口
](
../..
/reference/apis/js-apis-window.md
)
对象。
```
// MainAbility.ts
...
...
@@ -126,11 +126,11 @@ OpenHarmony提供了多种方法,判断应用当前处于何种断点,进而
在实际应用开发过程中,开发者常常需要针对不同类型设备或同一类型设备的不同状态来修改应用的样式。媒体查询提供了丰富的媒体特征监听能力,可以监听应用显示区域变化、横竖屏、深浅色、设备类型等等,因此在应用开发过程中使用的非常广泛。
本小节仅介绍
**媒体查询跟断点的结合**
,即如何借助媒体查询能力,监听断点的变化,读者可以自行查阅官网中关于
[
媒体查询
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/ui/ui-ts-layout-mediaquery.md
)
的相关介绍了解更详细的用法。
本小节仅介绍
**媒体查询跟断点的结合**
,即如何借助媒体查询能力,监听断点的变化,读者可以自行查阅官网中关于
[
媒体查询
](
../..
/ui/ui-ts-layout-mediaquery.md
)
的相关介绍了解更详细的用法。
>  **说明:**
> 类Web开发范式,支持在js文件和css文件中使用媒体查询,请查看[js媒体查询](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md)和[css媒体查询](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-js/js-components-common-mediaquery.md)了解详细用法。
> 类Web开发范式,支持在js文件和css文件中使用媒体查询,请查看[js媒体查询](
../../reference/apis/js-apis-mediaquery.md)和[css媒体查询](../..
/reference/arkui-js/js-components-common-mediaquery.md)了解详细用法。
**示例:**
...
...
@@ -254,7 +254,8 @@ struct MediaQuerySample {
## 栅格布局
### 简介
## <sub>栅格</sub>
栅格是多设备场景下通用的辅助定位工具,通过将空间分割为有规律的栅格。栅格可以显著降低适配不同屏幕尺寸的设计及开发成本,使得整体设计和开发流程更有秩序和节奏感,同时也保证多设备上应用显示的协调性和一致性,提升用户体验。
...
...
@@ -269,6 +270,9 @@ struct MediaQuerySample {
单个Column的宽度是系统结合Margin、Gutter和Columns自动计算的,不需要也不允许开发者手动配置。
### 栅格布局
栅格布局就是栅格结合了断点,实现栅格布局能力的组件叫栅格组件。在实际使用场景中,可以根据需要配置不同断点下栅格组件中元素占据的列数,同时也可以调整Margin、Gutter、Columns的取值,从而实现不同的布局效果。
| sm断点 | md断点 |
...
...
@@ -276,7 +280,7 @@ struct MediaQuerySample {
| !
[
zh-cn_image_0000001336486244
](
figures/zh-cn_image_0000001336486244.jpg
)
| !
[
zh-cn_image_0000001386646685
](
figures/zh-cn_image_0000001386646685.jpg
)
|
>  **说明:**
> - ArkUI在API 9对栅格组件做了重构,推出了新的栅格组件[GridRow](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-gridrow.md)和[GridCol](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-gridcol.md),同时原有的[GridContainer组件](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-container-gridcontainer.md)及[栅格设置](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-grid.md)已经废弃。
> - ArkUI在API 9对栅格组件做了重构,推出了新的栅格组件[GridRow](
../../reference/arkui-ts/ts-container-gridrow.md)和[GridCol](../../reference/arkui-ts/ts-container-gridcol.md),同时原有的[GridContainer组件](../../reference/arkui-ts/ts-container-gridcontainer.md)及[栅格设置](../..
/reference/arkui-ts/ts-universal-attributes-grid.md)已经废弃。
>
> - 本文中提到的栅格组件,如无特别说明,都是指GridRow和GridCol组件。
...
...
@@ -349,7 +353,7 @@ struct GridRowSample2 {
// 侧边栏,尺寸变化范围 [100vp, 600vp]
Column(){}.width('100%').backgroundColor('#19000000')
// 内容区,尺寸变化范围 [
550vp,
50vp]
// 内容区,尺寸变化范围 [
窗口宽度550vp, 窗口宽度
50vp]
GridRow({breakpoints: {value: ['100vp', '200vp', '300vp', '400vp', '500vp'],
reference: BreakpointsReference.ComponentSize}}) {
GridCol({span:{xs: 12, sm: 12, md: 12, lg:12, xl: 12, xxl:12}}) {
...
...
@@ -383,7 +387,7 @@ struct GridRowSample2 {
栅格组件columns默认为12列,gutter默认为0,同时支持开发者根据实际需要定义不同断点下的columns数量以及gutter长度。特别的,在栅格组件实际使用过程中,常常会发生多个元素占据的列数相加超过总列数而折行的场景。栅格组件还允许开发者分别定义水平方向的gutter(相邻两列之间的间距)和垂直方向的gutter(折行时相邻两行之间的间距)。
考虑到
[
组件通用属性
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-universal-attributes-size.md
)
中已经有margin和padding,栅格组件不再单独提供额外的margin属性,直接使用通用属性即可。借助margin或者padding属性,均可以控制栅格组件与父容器左右边缘的距离,但是二者也存在一些差异:
考虑到
[
组件通用属性
](
../..
/reference/arkui-ts/ts-universal-attributes-size.md
)
中已经有margin和padding,栅格组件不再单独提供额外的margin属性,直接使用通用属性即可。借助margin或者padding属性,均可以控制栅格组件与父容器左右边缘的距离,但是二者也存在一些差异:
-
margin区域在栅格组件的边界外,padding区域在栅格组件的边界内。
-
栅格组件的backgroundColor会影响padding区域,但不会影响margin区域。
...
...
@@ -391,6 +395,7 @@ struct GridRowSample2 {
总的来讲,margin在组件外而padding在组件内,开发者可以根据实际需要进行选择及实现目标效果。
**示例3:**
...
...
@@ -724,3 +729,8 @@ struct GridRowSample9 {
如前所述,栅格组件提供了丰富的自定义能力,功能异常灵活和强大。只需要明确栅格在不同断点下的Columns、Margin、Gutter及span等参数,即可确定最终布局,无需关心具体的设备类型及设备状态(如横竖屏)等。栅格可以节约设计团队与开发团队的沟通成本,提升整体开发效率。
## 相关实例
针对栅格断点系统开发,有以下相关实例可供参考:
-
[
`Weather`:一多天气(eTS)(API9)
](
https://gitee.com/openharmony/applications_app_samples/tree/master/MultiDeviceAppDev/Weather
)
zh-cn/application-dev/key-features/multi-device-app-dev/typical-layout-scenario.md
浏览文件 @
a74cca26
...
...
@@ -34,9 +34,9 @@
**实现方案**
不同断点下,页签在页面中的位置及尺寸都有差异,可以结合响应式布局能力,设置不同断点下
[
Tab组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-tabs.md
)
的barPosition、vertical、barWidth和barHeight属性实现目标效果。
不同断点下,页签在页面中的位置及尺寸都有差异,可以结合响应式布局能力,设置不同断点下
[
Tab组件
](
../..
/reference/arkui-ts/ts-container-tabs.md
)
的barPosition、vertical、barWidth和barHeight属性实现目标效果。
另外,页签栏中的文字和图片的相对位置不同,同样可以通过设置不同断点下
[
tabBar
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-tabcontent.md#%E5%B1%9E%E6%80%A7
)
对应的CustomBuilder中的布局方向,实现目标效果。
另外,页签栏中的文字和图片的相对位置不同,同样可以通过设置不同断点下
[
tabBar
](
../..
/reference/arkui-ts/ts-container-tabcontent.md#%E5%B1%9E%E6%80%A7
)
对应的CustomBuilder中的布局方向,实现目标效果。
**参考代码**
...
...
@@ -144,7 +144,7 @@ struct Home {
**实现方案**
运营横幅通常使用
[
Swiper组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-swiper.md
)
实现。不同断点下,运营横幅中展示的图片数量不同。只需要结合响应式布局,配置不同断点下Swiper组件的displayCount属性,即可实现目标效果。
运营横幅通常使用
[
Swiper组件
](
../..
/reference/arkui-ts/ts-container-swiper.md
)
实现。不同断点下,运营横幅中展示的图片数量不同。只需要结合响应式布局,配置不同断点下Swiper组件的displayCount属性,即可实现目标效果。
**参考代码**
...
...
@@ -202,9 +202,9 @@ export default struct Banner {
**实现方案**
不同断点下,页面中图片的排布不同,此场景可以通过响应式布局能力结合
[
Grid组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-grid.md
)
实现,通过调整不同断点下的Grid组件的columnsTemplate属性即可实现目标效果。
不同断点下,页面中图片的排布不同,此场景可以通过响应式布局能力结合
[
Grid组件
](
../..
/reference/arkui-ts/ts-container-grid.md
)
实现,通过调整不同断点下的Grid组件的columnsTemplate属性即可实现目标效果。
另外,由于本例中各列的宽度相同,也可以通过响应式布局能力结合
[
List组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-list.md
)
实现,通过调整不同断点下的List组件的lanes属性也可实现目标效果。
另外,由于本例中各列的宽度相同,也可以通过响应式布局能力结合
[
List组件
](
../..
/reference/arkui-ts/ts-container-list.md
)
实现,通过调整不同断点下的List组件的lanes属性也可实现目标效果。
**参考代码**
...
...
@@ -341,7 +341,7 @@ struct MultiLaneList {
**实现方案**
侧边栏通常通过
[
SideBarContainer组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-sidebarcontainer.md
)
实现,结合响应式布局能力,在不同断点下为SiderBarConContainer组件的sideBarWidth、showControlButton等属性配置不同的值,即可实现目标效果。
侧边栏通常通过
[
SideBarContainer组件
](
../..
/reference/arkui-ts/ts-container-sidebarcontainer.md
)
实现,结合响应式布局能力,在不同断点下为SiderBarConContainer组件的sideBarWidth、showControlButton等属性配置不同的值,即可实现目标效果。
**参考代码**
...
...
@@ -433,7 +433,7 @@ struct SideBarSample {
**实现方案**
图片通常使用
[
Image组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-basic-components-image.md
)
展示,Image组件的objectFit属性默认为ImageFit.Cover,即保持宽高比进行缩小或者放大以使得图片两边都大于或等于显示边界。在大图浏览场景下,因屏幕与图片的宽高比可能有差异,常常会发生图片被截断的问题。此时只需将Image组件的objectFit属性设置为ImageFit.Contain,即保持宽高比进行缩小或者放大并使得图片完全显示在显示边界内,即可解决该问题。
图片通常使用
[
Image组件
](
../..
/reference/arkui-ts/ts-basic-components-image.md
)
展示,Image组件的objectFit属性默认为ImageFit.Cover,即保持宽高比进行缩小或者放大以使得图片两边都大于或等于显示边界。在大图浏览场景下,因屏幕与图片的宽高比可能有差异,常常会发生图片被截断的问题。此时只需将Image组件的objectFit属性设置为ImageFit.Contain,即保持宽高比进行缩小或者放大并使得图片完全显示在显示边界内,即可解决该问题。
**参考代码**
...
...
@@ -609,7 +609,7 @@ export default struct Header {
**实现方案**
借助
[
栅格组件
](
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev
/reference/arkui-ts/ts-container-gridrow.md
)
,控制待显示内容在不同的断点下占据不同的列数,即可实现不同设备上的缩进效果。另外还可以调整不同断点下栅格组件与两侧的间距,获得更好的显示效果。
借助
[
栅格组件
](
../..
/reference/arkui-ts/ts-container-gridrow.md
)
,控制待显示内容在不同的断点下占据不同的列数,即可实现不同设备上的缩进效果。另外还可以调整不同断点下栅格组件与两侧的间距,获得更好的显示效果。
**参考代码**
...
...
zh-cn/application-dev/key-features/multi-device-app-dev/typical-page-layout.md
已删除
100644 → 0
浏览文件 @
cf963ce1
# 典型页面场景
-
**[应用市场首页](appgallery-home-page.md)**
-
**[音乐专辑页](music-album-page.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/ux-design.md
已删除
100644 → 0
浏览文件 @
cf963ce1
# 应用UX设计
-
**[设计原则和要点](design-principles.md)**
-
**[应用架构设计](architecture-design.md)**
-
**[界面布局](interface-layout-design.md)**
-
**[人机交互](man-machine-interaction.md)**
-
**[视觉风格](visual-style.md)**
-
**[多态控件](design-polymorphic-controls.md)**
-
**[设计自检表](design-checklist.md)**
-
**[设计交付](design-delivery.md)**
-
**[资源](design-resources.md)**
\ No newline at end of file
zh-cn/application-dev/key-features/multi-device-app-dev/visual-style.md
已删除
100644 → 0
浏览文件 @
cf963ce1
# 视觉风格
-
**[视觉基础](visual-basics.md)**
-
**[色彩](visual-style-color.md)**
-
**[字体](visual-style-font.md)**
-
**[图标](visual-style-icon.md)**
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录