• #2020征文TV#【鸿蒙基地】鸿蒙从窗口开始:Page Ability诞生记


    目录:

    1. Page Ability概述

    2. 手动创建Page Ability类

    3. 在config.json文件中注册Page Ability

    4. 创建布局文件

    5. 装载布局文件

    6. 显示Page Ability

    7. 销毁Page Ability

    8.源代码包

    #2020征文-TV#【鸿蒙基地】鸿蒙从窗口开始:Page Ability诞生记

     1. Page Ability概述
    Page Ability是FA唯一支持的Ability,本质上是一个窗口,类似于Android的Activity,用于提供与用户交互的能力。为了方便,在后面的内容就将Page Ability简称为Page。另外,HarmonyOS还提供了一个AbilitySlice。AbilitySlice的功能与Page类似,只是在切换时可以在同一个Page内完成。如果从Page到Page,相当于Web页面用新窗口导航到另一个页面。如果从AbilitySlice切换到AbilitySlice,相当于Web页面以同一个窗口的方式导航到另一个页面。


    一个Page可以不使用AbilitySlice,也可以使用一个或多个AbilitySlice,在创建HarmonyOS工程时,生成的Demo代码中包含了一个默认的AbilitySlice(MainAbilitySlice.java)。图1 是Page和AbilitySlice的关系。
    #2020征文-TV#【鸿蒙基地】鸿蒙从窗口开始:Page Ability诞生记

    图1 Page与AbilitySlice的关系


    如果在Page中使用多个AbilitySlice,那么这些AbilitySlice提供的业务能力应高度相关。下面是一个典型的应用场景:
    在线视频播放器的主界面可以用一个Page来实现,在主界面中包含了两个AbilitySlice:一个AbilitySlice用于展示视频列表,另一个AbilitySlice用于播放视频。


    在DevEco Studio中创建HarmonyOS工程时,IDE会提供一些Page模板,如图2所示。通过这些Page模板,可以生成HarmonyOS工程的骨架代码,其中会包含一些简单的例子,相当于HelloWorld。
    #2020征文-TV#【鸿蒙基地】鸿蒙从窗口开始:Page Ability诞生记

    图2 创建HarmonyOS工程时的提供的Page模板


    DevEco Studio提供了自动创建Page Ability的功能,在创建的过程中会自动向config.json文件中添加相应的配置信息。不过为了更深入理解Page Ability的创建和使用过程,本节将用纯手工的方式创建一个Page Ability。


    2. 手动创建Page Ability类


    Page Ability是一个普通的Java类,所以我们首先应该创建一个Java类,本例创建的Java类是FirstAbility。任何一个Page Ability类都必须从Ability类继承,该类属于ohos.aafwk.ability包,所以FirstAbility的最终形式如下:
    #2020征文-TV#【鸿蒙基地】鸿蒙从窗口开始:Page Ability诞生记

    3. 在config.json文件中注册Page Ability
    在HarmonyOS App中,任何一个可用的Page Ability,都必须在config.json文件中注册。Page Ability需要在config.json文件中的abilities部分注册。abilities是一个对象数组,每一个元素是一个对象,表示一个Ability(包括Page Ability、Data Ability和Service Ability)。FirstAbility的配置代码如下:
    #2020征文-TV#【鸿蒙基地】鸿蒙从窗口开始:Page Ability诞生记
    在创建HarmonyOS工程时,IDE已经自动在config.json文件中添加了MainAbility的注册信息,读者可以照葫芦画瓢,将MainAbility的注册代码复制一份,然后略作修改。


    这里主要修改了actions、name和label属性。actions表示一个或多个与Page Ability关联的动作,可以通过这些action来调用当前的Page Ability。name指定了Page Ability类的全名,本例是com.unitymarvel.demo.FirstAbility。label用于指定窗口的标题文本。


    4. 创建布局文件
    HarmonyOS App既可以用Java代码动态创建组件的方式布局,也可以使用布局文件。本例使用布局文件的方式进行布局,这也是我推荐的布局方式。因为使用Java代码创建复杂的布局非常困难,而且代码量比较大,代码难以维护。
    HarmonyOS工程的所有布局文件都放在resources/base/layout目录中,现在创建一个first_layout.xml文件,并输入下面的代码:
    #2020征文-TV#【鸿蒙基地】鸿蒙从窗口开始:Page Ability诞生记关于布局的更多内容在后面的

    章节会详细讨论,这里只要知道,first_layout.xml文件中使用了方向布局,而且是垂直方向。在垂直方向上从上到下放置了3个组件,分别是Button1、Text和Button2。

    查看更多章节>>> 

    作者:李宁

    想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com/

  • 相关阅读:
    hdu6514 // 二维差分 二维前缀和 基本容斥 压维
    【模板】欧拉函数 & 欧拉筛
    并查集模板 hdu1703
    大数 gcd
    hdu1087 dp
    洛谷p1306 斐波那契公约数
    hdu6814 Tetrahedron 线性求逆元 + 快速幂求逆元
    hdu6867 Tree // DFS
    hdu6869 Slime and Stones // 威佐夫博弈·改
    Python实现EXCEL表格的排序功能
  • 原文地址:https://www.cnblogs.com/HarmonyOS/p/14234554.html
Copyright © 2020-2023  润新知