![Hello HarmonyOS!:鸿蒙应用开发从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/437/43738437/b_43738437.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.2.3 StackLayout
与前两种布局方式相比,StackLayout(层叠布局)相对简单一些。它会为每一个放进去的组件创建一个空白区域,通常称为一层。这些层默认会从屏幕左上角开始绘制,即 StackLayout 默认从左上角的(0,0)坐标开始绘制组件,最先放入的组件位于底层,最后放入的组件在最上层,这些组件看起来好像层叠在一起,这就是 StackLayout 的效果。层叠布局在开发过程中可以用于地图设计、游戏页面等场景,如图2-21所示。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_106_2.jpg?sign=1739342520-WBsJdeAe8EEcM6FDSPH4L9MyZp4E9pZj-0-6b26b0698fe8724239819aa666d5abc8)
图2-21 层叠布局示意图
下面通过实践来加深对层叠布局的理解。创建一个最外层为 StackLayout的父布局,并在其中添加相应的组件。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_107_1.jpg?sign=1739342520-19H8wj4E7WjtPfOShUQfOPO8hv7Ss8q3-0-ab6eebfc9a4af09f1130da8d7abb575d)
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_108_1.jpg?sign=1739342520-dKw6omSS8p6OOMVr8J4I1LMmSzHIlQ9f-0-d5e1dc54c8e20ee6978143e8269680af)
在上述布局文件中添加了三个 Te x t 组件,其属性在后面章节中再详细介绍。这三个组件从上到下依次变小,颜色逐渐变浅,层次堆叠摆放,最后添加的“第三层”在顶部,“第一层”在底部,重叠部分会被顶部的盖住。页面的预览效果如图 2-22所示。
其实也可以看到,StackLayout 中的组件位置也是可以改变的,只是默认从左上角开始绘制。在上述案例中,通过ohos:layout_alignment属性改变了组件在 StackLayout 中的位置。除了 center,StackLayout还支持以下位置属性值,见表2-3。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_108_2.jpg?sign=1739342520-Y2biFICwvQGEg9OSQQYy9qn3zSSsd2CB-0-a91ef573b433b4c57065d0bd52332acc)
图2-22 层叠布局的显示效果
表2-3 StackLayout中的位置属性值
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_108_3.jpg?sign=1739342520-OFoprxgrSDgynuF0zU5AyA9wOISArhnn-0-8395d0b6269e6acf8050996b28594df4)
ohos:layout_alignment 还支持这些属性值的组合使用。比如,想让组件在底部右对齐,这个时候可以使用“|”作为连接符来组合多个属性值,只需要使用ohos:layout_alignment="bottom|right"就可以实现组件在底部右对齐。