开发说明

HarmonyOS提供了Ability和AbilitySlice两个基础类,一个有界面的Ability可以由一个或多个AbilitySlice构成,AbilitySlice主要用于承载单个页面的具体逻辑实现和界面UI,是应用显示、运行和跳转的最小单元。AbilitySlice通过setUIContent为界面设置布局。

接口声明 接口描述
setUIContent(ComponentContainer root) 设置界面入口,root为界面组件树根节点。

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

  • 在代码中创建布局:用代码创建Component和ComponentContainer对象,为这些对象设置合适的布局参数和属性值,并将Component添加到ComponentContainer中,从而创建出完整界面。
  • 在XML中声明UI布局:按层级结构来描述Component和ComponentContainer的关系,给组件节点设定合适的布局参数和属性值,代码中可直接加载生成此布局。

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

组件分类

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

组件类别 组件名称 功能描述
布局类 PositionLayout、DirectionalLayout、StackLayout、DependentLayout、TableLayout、AdaptiveBoxLayout 提供了不同布局规范的组件容器,例如以单一方向排列的DirectionalLayout、以相对位置排列的DependentLayout、以确切位置排列的PositionLayout等。
显示类 Text、Image、Clock、TickTimer、ProgressBar 提供了单纯的内容显示,例如用于文本显示的Text,用于图像显示的Image等。
交互类 TextField、Button、Checkbox、RadioButton/RadioContainer、Switch、ToggleButton、Slider、Rating、ScrollView、TabList、ListContainer、PageSlider、PageFlipper、PageSliderIndicator、Picker、TimePicker、DatePicker、SurfaceProvider、ComponentProvider 提供了具体场景下与用户交互响应的功能,例如Button提供了点击响应功能,Slider提供了进度选择功能等。

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

相关实例

针对常用组件和布局开发,有以下示例工程可供参考:

  • Components

    本示例演示了Text和Button两种常用组件的基础使用方法。

  • CommonLayout

    本示例演示了DirectionalLayout和DependentLayout两种常用布局的基础使用方法。

针对Java UI框架的组件与布局开发,有以下Codelabs可供参考:

  • 常用组件和布局

    基于HarmonyOS Java UI,实现常见组件或者布局。

  • 分布式新闻客户端

    基于HarmonyOS应用中Service Ability和Page Ability的使用,实现跨设备FA拉起。

  • 跨设备视频播放

    基于分布式能力和IDL跨进程通信,实现视频跨设备播放、控制。

  • 分布式游戏手柄

    基于分布式能力,将手机作为智慧屏的虚拟手柄终端,组成全新的多人娱乐场景。

results matching ""

    No results matching ""