跳到主要内容

窗口开发术语

窗口类型

窗口有系统窗口、应用窗口两种分类。

系统窗口

系统窗口指完成系统特定功能的窗口。如音量条、壁纸、通知栏、状态栏、导航栏等。

系统窗口仅系统应用可用。

应用窗口

应用窗口区别于系统窗口,指与应用显示相关的窗口,用来显示应用的内容。根据管理方式和用途的不同,应用窗口又可以分为主窗口、辅助窗口两种类型。

  • 主窗口

    主窗口由UIAbility创建时默认创建,会在“任务管理界面”中以一个独立的任务卡片显示,用于显示应用UIAbility主界面。

  • 辅助窗口

    辅助窗口由应用自行管理创建和销毁,不会在“任务管理界面”中以一个独立的任务卡片显示,可以用于显示应用的辅助内容,例如弹窗等。

    辅助窗口包括子窗口、全局悬浮窗、模态窗口、画中画和闪控球。

悬浮窗

悬浮窗分为智慧多窗悬浮窗和全局悬浮窗。

  • 智慧多窗悬浮窗是指设备屏幕上悬浮的、非全屏的应用窗口。

    一般用于在已有全屏任务运行的基础上,临时处理另一个任务,或短时间多任务并行使用。如浏览网页的同时回复消息。

    相关参考:智慧多窗简介智慧多窗最佳实践

  • 全局悬浮窗是指一种特殊的应用辅助窗口,具备在应用主窗口和对应Ability退至后台后仍然可以在前台显示的能力。

    全局悬浮窗可以用于应用退至后台后,使用小窗继续显示UI,例如音乐应用用于显示桌面歌词等。

    应用在创建全局悬浮窗前,需要申请对应的权限。

相关参考:设置全局悬浮窗

自由窗口

自由窗口是一种允许用户在同一屏幕上以自由大小、位置显示的窗口状态。自由窗口支持拖拽、缩放和分屏组合,从而实现多任务处理。

自由窗口按照打开或者获取焦点的顺序在Z轴层叠排布。当自由窗口被点击或触摸时,将导致其Z轴高度提升,并获取焦点。

启动新的自由窗口时,默认以一定间距在上一个窗口的右下方层叠显示。

每个自由窗口默认会在窗口上方显示窗口标题栏,标题栏左侧显示应用图标,右侧显示三键控制按钮(窗口最大化/还原、窗口最小化和关闭窗口),且窗口标题栏支持额外的沉浸式配置

自由窗口可以通过拖动窗口边缘调节窗口大小,可以通过拖动标题栏移动窗口位置。

当前设备支持情况:

  • 2in1设备:2in1设备上的窗口,默认为自由窗口。
  • Tablet设备:部分Tablet设备,支持开启自由多窗模式(通过下拉控制中心,点击“自由多窗”按钮开启),开启此模式后,应用窗口默认为自由窗口。
  • Phone设备:部分Phone设备,支持开启自由多窗模式(通过下拉控制中心,点击“自由多窗”按钮开启),开启此模式后,应用窗口默认为自由窗口。

自由多窗模式

自由多窗模式是一种支持用户在移动设备上进行多任务处理的交互方式。

自由多窗下,允许用户在一块屏幕上同时显示多个应用窗口。此时的应用窗口为自由窗口

部分Tablet设备上,可通过下拉控制中心,点击“自由多窗”按钮开启自由多窗。

部分Phone设备上,可通过下拉控制中心,点击“自由多窗”按钮开启自由多窗。

电脑模式

电脑模式是一种支持用户在移动设备上进行多任务处理的交互方式。

电脑模式下,允许用户在一块屏幕上同时显示多个应用窗口。此时的应用窗口为自由窗口

部分Tablet设备上,可通过下拉控制中心,点击“电脑模式”按钮开启电脑模式。

沉浸式布局

沉浸式布局是一种让应用界面聚焦内容,减少无关元素干扰的窗口状态。

自由窗口可以通过调用setWindowLayoutFullScreen进入沉浸式布局。

非自由窗口的非沉浸式布局示意非自由窗口的沉浸式布局示意

自由窗口可以通过隐藏装饰栏进入沉浸式布局。

自由窗口的非沉浸式布局示意自由窗口的沉浸式布局示意

应用窗口进入沉浸式布局之后,页面的所有组件布局范围从安全区域扩展为整个窗口。可以通过isImmersiveLayout判断当前窗口是否处于沉浸式布局。

多设备场景下不同窗口形态的沉浸式开发与实现可以参考窗口沉浸式最佳实践

全局坐标系

全局坐标系是指在设备连接扩展屏(多物理屏幕)的场景下,以主屏幕左上角为原点(0, 0),屏幕右侧为x轴正方向,屏幕下侧为y轴正方向,对窗口、指针等对象的位置进行统一描述的坐标体系。

在该坐标系中,所有物理屏幕被映射到同一连续的虚拟坐标空间内,各类窗口操作、坐标转换及窗口矩形变化事件均基于该坐标空间进行计算和回调。

使用场景:

  • 窗口跨屏移动:调用基于全局坐标系的接口移动窗口,无需传递具体屏幕ID参数,即可实现窗口在多屏之间移动。
  • 窗口位置变化监听:基于全局坐标系监听窗口矩形变化事件,统一获取窗口在多屏环境中的位置与尺寸变化信息。