创建第一个项目

step1:

下载开发工具DevEco Studio

step2:

创建Empty Ablility工程

step3:

Project导航中,初始化创建项目的模板代码( entry -> src -> main -> ets -> pages -> Index.ets)

解析模板:

其中,@Component装饰器装饰了struct关键字声明的数据结构Index。Index被@Component装饰后具备组件化的能力,通过实现build方法表示UI。

@Entry装饰的@Component将作为UI页面的入口。在单个UI页面中,最多可以使用@Entry装饰一个自定义组件。

布局,界面有RelativeContainer相对布局容器作为根容器,RelativeContainer支持容器内部的子元素设置相对位置关系,适用于界面复杂场景的情况,对多个子组件进行对齐和排列。

Text组件展示一段文本,文本信息由@State装饰器装饰的状态变量message驱动,Text组件定义了组件标识id为HelloWorld,用于唯一指定组件。

定义字体大小fontSize取值为$r(‘app.float_page_text_font_size’)资源类型;定义文本的字体粗细fontWeight取值为Bold,即字体较粗。【字体大小等数据的值一般存储在/entry/src/main/resources/base/element/float.json文件下,可以按照上文page_text_font_size的方式保存至float.json文件中,并通过$r(‘app.float.xxx’)进行资源引用。】

alignRules属性用于指定设置在相对容器中子组件的对齐规则,仅当父容器为RelativeContainer时生效,这里定义Text组件横向居中和纵向居中。

step4:

开启右边栏的Previewer,预览将工程中的@Entry作为实现入口,自动实现预览。(此处需要选中@Entry所在文件,预览器才能打开)

Step5:

修改APP的名称为”HMOS世界入门版”,修改entry/src/main/resources/base/element/string.json文件,将EntryAbility_label的value修改为“HMOS世界入门版”。

step6:

修改APP的图标。将01_Resources文件夹中的background.png和foreground.png图片重命名为app_background.png和app_foreground.png,并复制粘贴到AppScope/resources/base/media文件夹中,将其中原本的app_background.png和app_foreground.png文件替换掉。

页面结构总览

step1:

轮播图部分:可自动播放,展示多张图片的组件,命名为Banner,每一个元素为BannerItem。

赋能套件部分:横向可滑动的组件,命名为Enablement,由多个Enablementitem组成。

入门教程部分;纵向可滑动的组件,命名为Tutorial,由多个Tutorial item组成。

step2:

轮播图部分:Swiper组件提供滑动轮播显示的能力。

赋能套件部分:Grid组件为网格容器,由“行”和“列”分割的单元格所组成,其中容器内各条目对应一个GridItem组件。如果仅设置行、列数量与占比中的一个,网格单元将按照设置的方向排列,超出Grid显示区域后,Grid拥有可滚动能力。在这部分,可以设置单行显示,则赋能套件部分可以横向滑动。

入门教程部分:List容器可以轻松高效地显示结构化、可滚动的信息。当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。

组件化

模板:

1
2
3
4
5
6
7
@Preview、
@Component//组件化
struct Banner{//构造数据
build(){//UI描述

}
}