花粉乐分享平台宣传视频
> 华为资讯 > 华为资讯 > 鸿蒙编程 > HarmonyOS页面开发之组件与组件容器
HarmonyOS页面开发之组件与组件容器
来源:小阳博士
2023-01-03 10:25:28
387
管理

声明:鸿蒙小阳原创文章,禁止转载,合作请私信。

组件与组件容器

HarmonyOS应用程序是运行在多种终端上的应用程序,包括手机、手表、平板、车机、智慧屏等,用户通过运行在这些设备上的页面,来与HarmonyOS系统进行交互。这一节我们主要来介绍鸿蒙页面开发的知识,在讲解常用组件之前,首先要掌握两个概念最基础的概念,分别为Component和ComponentContainer。

Component

Component在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加油站

2
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与花粉乐分享无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
凡本网注明 “来源:XXX(非花粉乐分享)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。
如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。
QQ:2443165046 邮箱:info@hflfx.com
关于作者
Mole(蜂界传说)
文章
497
主题
0
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行
随手拍
54个圈友 0个话题
华为手机随手拍,记录生活点滴之美好
华为P30pro
51个圈友 0个话题
这里是华为P30pro手机交流圈,欢迎华为P30pro用户进群交流
体验官
60个圈友 2个话题
华为花粉体验官,体验官专属的交流群
登录后查看您创建的圈子
登录后查看您创建的圈子
所有圈子
杭州互联网违法和不良信息举报平台 网络110报警服务 浙ICP备17046585号
2
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索