#跟着坚果学鸿蒙#概述 应用的 Ability 在屏幕上将显示一个用户界面,该界面用来显示所有可被用户查看 和交互的内容。应用中所有的用户界面元素都是由 Component 和 ComponentContainer 对象构成。Component 是绘制在屏幕上的一个对象,用户能 与之交互。ComponentContainer 是一个用于容纳其他 Component 和 ComponentContainer 对象的容器。 Java UI 框架提供了一部分 Component 和 ComponentContainer 的具体子类,即创 建用户界面(UI)的各类组件,包括一些常用的组件(比如:文本、按钮、图片、 列表等)和常用的布局(比如:DirectionalLayout 和 DependentLayout)。用户可 通过组件进行交互操作,并获得响应。所有的 UI 操作都应该在主线程进行设置。

组件和布局 用户界面元素统称为组件,组件根据一定的层级结构进行组合形成布局。组件在 未被添加到布局中时,既无法显示也无法交互,因此一个用户界面至少包含一个 布局。在 UI 框架中,具体的布局类通常以 XXLayout 命名,完整的用户界面是一 个布局,用户界面中的一部分也可以是一个布局。布局中容纳 Component 与 ComponentContainer 对象。

Component 和 ComponentContainer ⚫ Component:提供内容显示,是界面中所有组件的基类,开发者可以给 Component 设置事件处理回调来创建一个可交互的组件。Java UI 框架提供了一些 常用的界面元素,也可称之为组件,组件一般直接继承 Component 或它的子类, 如 Text、Image 等。 ⚫ ComponentContainer:作为容器容纳Component或ComponentContainer对象, 并对它们进行布局。Java UI 框架提供了一些标准布局功能的容器,它们继承自ComponentContainer,一般以“Layout”结尾,如 DirectionalLayout、DependentLayout 等。

LayoutConfig 每种布局都根据自身特点提供 LayoutConfig 供子 Component 设定布局属性和参 数,通过指定布局属性可以对子 Component 在布局中的显示效果进行约束。例 如:“width”、“height”是最基本的布局属性,它们指定了组件的大小。

组件树

布局把Component和ComponentContainer以树状的层级结构进行组织,这样的一个布局就称为组件树。组件树的特点是仅有一个根组件,其他组件有且仅有一个父节点,组件之间的关系受到父节点的规则约束。

组件与布局开发指导 开发说明

HarmonyOS提供了Ability和AbilitySlice两个基础类。有界面的Ability绑定了系统的Window进行UI展示,且具有生命周期。AbilitySlice主要用于承载Ability的具体逻辑实现和界面UI,是应用显示、运行和跳转的最小单元。AbilitySlice通

过setUIContent()为界面设置布局。

组件需要进行组合,并添加到界面的布局中。在Java UI框架中,提供了两种编写布局的方式:

⚫ 在代码中创建布局:用代码创建Component和ComponentContainer对象,为这些对象设置合适的布局参数和属性值,并将 Component添加到ComponentContainer中,从而创建出完整界面。

⚫ 在XML中声明UI布局:按层级结构来描述Component和ComponentContainer的关系,给组件节点设定合适的布局参数和属性值,代码中可直接加载生成此布局。

这两种方式创建出的布局没有本质差别,在XML中声明布局,在加载后同样可在代码中对该布局进行修改。

组件分类

根据组件的功能,可以将组件分为布局类、显示类、交互类三类:

框架提供的组件使应用界面开发更加便利,这些组件的具体功能说明及属性设置详见API参考。

 

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐