这是我参与「第四届青训营」笔记创作活动的第3天。
本笔记内容是第3课的布局基础部分。
1 Android布局概述
Android中,布局决定了App内的界面,布局的元素包括View和ViewGroup。View对用户可见,而ViewGroup对用户并不可见。ViewGroup可以包括View和其它ViewGroup,其层次结构图可如下图所示:(图源:Android Developers)
其中,View一般是用到的一些控件,比如TextView等,而ViewGroup一般就对应着布局。布局可以声明在XML文件中,也可以在运行时创建。Android常用的布局包括线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、约束布局(Constraint Layout)。下面介绍这几种布局。
2 线性布局
线性布局是较为基础的一种布局,这种布局简单地将组件依次排列,排列方向可以是垂直,也可以是水平,这取决于android:orientation属性。由于这种布局的特性,不难得出,各个子视图在所设置的方向是保持对齐的,因此适用于线性排列的场景。如果布局比较复杂,那么线性布局经常需要使用嵌套的方式才可以实现需要的效果,比较不便。
在线性布局中,可以使用android:layout_weight属性来为各个子视图分配所占屏幕的权重。默认的权重是0。
3 相对布局
相对布局,顾名思义,是将子视图显示在以一个元素的相对位置显示的布局,这个元素可以是同级的,也可以是父级的。这种布局可以避免线性布局的嵌套情况,因此更适合复杂的场景。
4 约束布局
这是Google推出的一个较新的布局,这种布局是通过约束组件的位置来决定各组件的位置。这种布局中的视图是根据同级视图与父布局间的关系决定视图位置并完成最终布局的,所以尽管约束布局和相对布局有类似之处,但约束布局比相对布局更加灵活,对于更复杂的布局需求,约束布局更适合。同时,这种布局的支持也比较完善。
要使用约束布局定义视图位置,需要为这个视图添加一个或以上的水平约束条件、竖直约束条件。这种布局的详细使用方法,可以阅读Android官方文档developer.android.com/training/co…或站内其他文章学习。
5 总结
本文总结了第3课关于布局的基础知识、基本使用方法以及适用的不同场景。熟练使用Android常见布局,并能够根据需求选用合适的布局,是后续自定义View、深入理解View等知识的重要基础。
本文参考了课堂上老师所讲的内容以及Google Android Developers官方文档。在文档中,包括了各布局可用的属性,因此文档也是学习本部分知识时的重要参考资料。