0 ArkTS开发语言
在介绍ArkUI开发之前,先说两句ArkTS语言。
ArkTS是一种为构建高性能应用而设计的编程语言。ArkTS在继承TypeScript语法的基础上进行了优化,以提供更高的性能和开发效率。
具体的ArkTS开发语言的语法,可以看下面这篇官方的文档,笔者就不再赘述了。
1 布局概述
组件按照布局的要求依次排列,构成应用的页面。在声明式UI中,所有的页面都是由自定义组件构成,开发者可以根据自己的需求,选择合适的布局进行页面开发。
布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际的开发过程中,需要遵守以下流程保证整体的布局效果:
- 确定页面的布局结构。
- 分析页面中的元素构成。
- 选用适合的布局容器组件或属性控制页面中各个元素的位置和大小。
常见的页面结构如下图所示:
这里面page就是当前页面的根节点,Column、Row是系统提供的布局组件,也是最常用的布局组件。
2 布局元素的组成
布局相关的容器组件可形成对应的布局效果,具体的布局元素的组成见下图
相信上面这个图对于做Android、iOS开发的程序员来说,不是很陌生,各个元素的含义如下:
- 组件区域(蓝区方块):组件区域表示组件的大小,width、height属性用于设置组件区域的大小。
- 组件内容区(黄色方块):组件内容区大小为组件区域大小减去组件的border值,组件内容区大小会作为组件内容(或者子组件)进行大小测算时的布局测算限制。
- 组件内容(绿色方块):组件内容本身占用的大小,比如文本内容占用的大小。组件内容和组件内容区不一定匹配,比如设置了固定的width和height,此时组件内容的大小就是设置的width和height减去padding和border值,但文本内容则是通过文本布局引擎测算后得到的大小,可能出现文本真实大小小于设置的组件内容区大小。当组件内容和组件内容区大小不一致时,align属性生效,定义组件内容在组件内容区的对齐方式,如居中对齐。
- 组件布局边界(虚线部分):组件通过margin属性设置外边距时,组件布局边界就是组件区域加上margin的大小。
3 如何选择布局
在HarmonyOS Next里,布局主要分为:
- 线性布局:对应的
ArkUI组件是Row、Column,相当于Android 中的 LinearLayout,Row就是横向的LinearLayout,Column就是竖向的LinearLayout - 层叠布局:对应的
ArkUI组件是Stack,相当于Android中的FrameLayout - 弹性布局:对应的
ArkUI组件是Flex, - 相对布局:
ArkUI组件是RelativeContainer,相当于Android中的RelativeLayout - 栅格布局:
ArkUI组件是GridRow、GridCol - 选项卡:
ArkUI组件是Tabs,相当于Android中的TabLayout
当然官方文档中还有一些其他布局,但是笔者总是觉得这些称不上布局,更像是组件,比如:List、Grid、Swiper这三个组件
尾声
说了这么多,距离 show me the code 就差一步了,下一篇咱们从最最常用的布局组件 Column、Row来入手
本文正在参加华为鸿蒙有奖征文征文活动