我们一起来读书吧 关注:153贴子:2,544
  • 0回复贴,共1

Harmony入门-03 页面布局

只看楼主收藏回复

针对UI开发,首先需要了解真个UI框架的布局结构,以及布局元素有哪些。针对ArkUI,主要提供的布局方式有以下几种。
线性布局(Row、Column)
层叠布局(Stack)
弹性布局(Flex)
相对布局(RelativeContainer)
栅格布局(GridRow、GridCol)
媒体查询(@ohos.mediaquery)
列表(List)
网格(Grid)
轮播(Swiper)
我们首先来介绍下线性布局。 顾名思义。线性布局主要有两种一种是行(Row)布局,一种是列(Column)布局。

行/列的基本概念与CSS中的Flex布局基本一致
布局容器:具有布局能力的容器组件,可以承载其他元素作为其子元素,布局容器会对其子元素进行尺寸计算和布局排列。
布局子元素:布局容器内部的元素。
主轴:线性布局容器在布局方向上的轴线,子元素默认沿主轴排列。Row容器主轴为水平方向,Column容器主轴为垂直方向。
交叉轴:垂直于主轴方向的轴线。Row容器交叉轴为垂直方向,Column容器交叉轴为水平方向。
间距:布局子元素的间距。
Column容器内排列方向上的间距, column容期间的间距采用称为space,类似css中的Margin。

语法

显示效果

Row容器内排列方向上的间距于column类似

语法

显示效果

=============================================================
布局子元素在交叉轴上的对齐方式
在布局容器内,可以通过alignItems属性设置子元素在交叉轴(排列方向的垂直方向)上的对齐方式。且在各类尺寸屏幕中,表现一致。其中,交叉轴为垂直方向时,取值为VerticalAlign类型,水平方向取值为HorizontalAlign。
alignSelf属性用于控制单个子元素在容器交叉轴上的对齐方式,其优先级高于alignItems属性,如果设置了alignSelf属性,则在单个子元素上会覆盖alignItems属性。
Column容器内子元素在水平方向上的排列

HorizontalAlign.Start:子元素在水平方向左对齐。语法

HorizontalAlign.Center:子元素在水平方向居中对齐。

HorizontalAlign.End:子元素在水平方向右对齐。

Row容器内子元素在垂直方向上的排列

于column语法类似

// 子元素在垂直方向顶部对
.alignItems(VerticalAlign.Top)
//子元素在垂直方向居中对
.alignItems(VerticalAlign.Center)
// 子元素在垂直方向底部对
.alignItems(VerticalAlign.Bottom)
布局子元素在主轴上的排列方式
在布局容器内,可以通过justifyContent属性设置子元素在容器主轴上的排列方式。可以从主轴起始位置开始排布,也可以从主轴结束位置开始排布,或者均匀分割主轴的空间。

修改对应的justifyContent即可如下

.justifyContent(FlexAlign.Center)
.justifyContent(FlexAlign.End)
.justifyContent(FlexAlign.SpaceBetween)
.justifyContent(FlexAlign.SpaceEvenly)
Row容器内子元素在水平方向上的排列

更多布局模式基本与css中的flex一致,
可参考 https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/arkts-layout-development-linear-0000001504125349-V3#section14541719479
=========================
点个赞在走呗


IP属地:北京1楼2024-02-21 22:49回复