OpenHarmony 主窗体和子窗体的关系

2024-09-07 14:04

本文主要是介绍OpenHarmony 主窗体和子窗体的关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

在鸿蒙(HarmonyOS)应用开发中,主窗体和子窗体之间的关系,以及它们与整个应用能力的关系,是层级性结构性的,可以从以下几个方面理解:

  • Window: 当前窗口实例,窗口管理器管理的基本单元。
  • WindowStage: 窗口管理器。管理各个基本窗口单元。

主窗体与子窗体的关系:

  1. 定义
    • 主窗体:应用启动时默认展示的界面,通常对应于应用的主能力。
    • 子窗体:在应用中可以被主窗体或其他子窗体打开的界面,用于展示应用的不同内容或功能。
  2. 层级
    • 主窗体是应用的根级界面,所有子窗体都是相对于主窗体存在的。
    • 子窗体可以是模态的或非模态的,模态子窗体会阻止用户与主窗体或其他子窗体的交互,而非模态子窗体则不会。
  3. 交互
    • 用户与子窗体的交互通常是通过主窗体触发的,例如点击按钮或菜单项。
    • 子窗体可以基于用户操作打开、关闭或切换,从而实现应用内的导航。

能力与窗体的关系:

  1. 定义
    • 能力(Ability):鸿蒙应用的基本组成单元,每个能力都有自己独立的功能和界面。
  2. 对应关系
    • 每个能力都有一个与之对应的窗体,这个窗体用于展示能力提供的界面。
    • 主能力对应的主窗体是应用的入口,而其他能力对应的窗体则是子窗体。
  3. 生命周期
    • 能力的生命周期事件(如onWindowStageCreateonWindowStageDestroy等)与对应窗体的创建和销毁是一一对应的。
    • 当能力被激活时,其对应的窗体会被创建并显示;当能力被销毁或暂停时,窗体也会相应地关闭或隐藏。

总结:简单一句话:Ability和窗体是一对一关系,而窗体与页面是一对多关系!

  • 主窗体:是应用的主能力界面,是用户与应用交互的起点。

  • 子窗体:是由主窗体或其他子窗体打开的界面,用于展示应用的不同部分或功能。

  • 能力:是应用的逻辑单元,每个能力都有自己的窗体,其中主能力对应的主窗体是应用的根界面。

  • 重要性:主窗体和子窗体的交互以及它们与能力的生命周期管理共同构成了鸿蒙应用的用户界面和用户体验。

  • 主窗体与主能力 MainAbility 的关系(一对一):每个应用只有一个MainAbility,该MainAbility只有一个主窗体作为应用入口,这句话可以在工程文件夹EntryAbility中的onWindowStage()回调方法中有直观的感受,即MainAbility创建了主窗体管理器。

  • 子窗体与子能力 Ability 的关系(一对多):一个应用只有一个MainAbility,当然也可以创建其他Ability,也就可以有其他相对Ability的窗体。而这个Ability我们可以实现一些专有功能。

  • 窗体和能力的关系:窗体是几乎和Ability同生共死,而我们写的很多页面都在一个Ability当中,即窗体和页面是完全不同的载体。这就好比家里的一堵墙和墙上的墙纸的关系,这堵墙不能动,而墙纸我可以任意变。

这篇关于OpenHarmony 主窗体和子窗体的关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145260

相关文章

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

数据依赖基础入门:函数依赖与数据库设计的关系

在数据库设计中,数据依赖 是一个重要的概念,它直接影响到数据库的结构和性能。函数依赖 作为数据依赖的一种,是规范化理论的基础,对数据库设计起着至关重要的作用。如果你是一名数据库设计的初学者,这篇文章将帮助你理解函数依赖及其在数据库设计中的应用。 什么是数据依赖? 数据依赖 是指同一关系中属性间的相互依赖和制约关系,它是数据库设计中语义的体现。在现实世界中,数据之间往往存在某种依赖关系,而这

c++ 和C语言的兼容性关系

C++ 和 C 语言有很高的兼容性,但也存在一些差异和限制。下面是它们的兼容性关系的详细介绍: 兼容性 C++ 是 C 的超集: C++ 语言设计为兼容 C 语言的语法和功能,大部分 C 代码可以在 C++ 编译器中编译运行。 标准库兼容性: C++ 标准库包含了 C 标准库的内容,如 stdio.h、stdlib.h、string.h 等头文件,但 C++ 的标准库也提供了额外的功能,如

七、Maven继承和聚合关系、及Maven的仓库及查找顺序

1.继承   2.聚合   3.Maven的仓库及查找顺序

file-max与ulimit的关系与差别

http://zhangxugg-163-com.iteye.com/blog/1108402 http://ilikedo.iteye.com/blog/1554822

【编程底层原理】方法区、永久代和元空间之间的关系

Java虚拟机(JVM)中的内存布局经历了几个版本的变更,其中方法区、永久代和元空间是这些变更中的关键概念。以下是它们之间的关系: 一、方法区: 1、方法区是JVM规范中定义的一个概念,它用于存储类信息、常量、静态变量、即时编译器编译后的代码等数据。 3、它是JVM运行时数据区的一部分,与堆内存一样,是所有线程共享的内存区域。 二、永久代(PermGen): 1、在Java SE 7之前,