开发说明
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跨进程通信,实现视频跨设备播放、控制。
分布式游戏手柄
基于分布式能力,将手机作为智慧屏的虚拟手柄终端,组成全新的多人娱乐场景。