声明:鸿蒙小阳原创文章,禁止转载,合作请私信。
组件与组件容器HarmonyOS应用程序是运行在多种终端上的应用程序,包括手机、手表、平板、车机、智慧屏等,用户通过运行在这些设备上的页面,来与HarmonyOS系统进行交互。这一节我们主要来介绍鸿蒙页面开发的知识,在讲解常用组件之前,首先要掌握两个概念最基础的概念,分别为Component和ComponentContainer。
ComponentComponent在HarmonyOS中可以理解为组件,它是HarmonyOS页面开发的基础,同样也是所有其他组件的基类。每个组件在屏幕上占据一个矩形区域,组件中不仅包括组件的绘制,还包括一系列事件处理的方法,使得用户可以与页面进行交互。
如上图所示页面包含了多个Component组件,例如最上面的“首页”、图片、按钮等都属于Component。这些Component有相同的地方,也有不同的地方。相同的地方在于他们都需要被绘制在屏幕上,那么就需要有组件的宽度和高度等属性,不同的地方在于有些显示的是图片,有些显示的是文字,他们肯定也包含一些不同的属性。
我们在绘制组件时,既可以通过Java进行动态设置,也能在相应的XML布局文件中进行声明。
在绘制一个Component时,开发者通常需要设置如下常用的属性和事件:
(1)形状属性:Component的长宽、位置、排列方式、背景颜色等。
(2)设置监听事件:点击事件、长按事件等。
(3)设置焦点:Component是否可获得焦点,以及获得焦点后需要进行什么样的样式改变或操作。
(4)设置控件的可见性,包括可见、不可见、隐藏三种属性。
下表列出了Component类支持的XML属性和对应的Java方法。
XML属性
方法
含义
ohos:height
setHeight(int height)
设置一个组件的高度,单位为像素
ohos:width
setWidth(int width)
设置一个组件的宽度,单位为像素
ohos:background_element
setBackground(Element element)
背景图层,可以直接使用RGB色值,也可引用media图片或graphic资源文件
ohos:id
setId(int id)
为控件设置ID值,用于唯一标识
ohos:padding
setPadding(int left, int top, int right, int bottom)
设置边距
ohos:left_padding
setPadding(int left, int top, int right, int bottom)
设置左边距
ohos:right_padding
setPadding(int left, int top, int right, int bottom)
设置右边距
ohos:top_padding
setPadding(int left, int top, int right, int bottom)
设置上边距
ohos:bottom_padding
setPadding(int left, int top, int right, int bottom)
设置下边距
ohos:margin
/
设置上下左右四个方向的外边距
ohos:left_margin
setMarginLeft(int left)
设置左外边距
ohos:focusable
setFocusable(int focusable)
控件是否可获得焦点
ohos:clickable
setClickable(boolean clickable)
是否可点击
ohos:Visibility
setVisibility(int visibility)
设置控件是否可见,包含VISIBLE、INVISIBLE、HIDE三个枚举值
ComponentContainer在HarmonyOS中,还有另外一种组件,这种组件被称作ComponentContainer,组件容器。顾名思义,ComponentContainer是用来盛放控件的容器,它可以管理控件大小和控件的排列方式。ComponentContainer继承自Component类,由于ComponentContainer是一个抽象类,我们通常使用的事它的子类,我们在后面会详细介绍它的几个实现类。
HarmonyOS中所有的页面都是建立在Component和ComponentContainer的基础上,ComponentContainer组件除了可以盛放Component组件,还可以再次包含ComponentContainer组件,这样可以让开发者方便实现非常灵活的页面布局。通常一个页面的布局层次结构如下图所示。
好了,这篇文章就介绍到这里,你学会了吗?想学习更多关于鸿蒙开发的知识,请关注我。
个人介绍:小阳同学,华为官方认证首批HarmonyOS系统开发者,曾参与鸿蒙北京线下沙龙担任主讲嘉宾,担任首届鸿蒙应用创新大赛指导老师。
花粉社群VIP加油站
猜你喜欢