如下图所示,按照界面编写的方式,可以分为传统布局和新型布局两种。
1.线性布局:是平常练习demo时最常用的布局,分为水平、垂直方向两种线性布局,即设置其属性orientation:"vertical或horizontal"。【注:在不指定方向时,默认为horizontal,即水平方向】
2.相对布局:依据某一控件的位置,来确定另一控件的位置,即另一控件相对于当前控件的位置。
3.表格布局:适用于多行多列的布局方式,通过表格方式来布局控件的位置,并且每个TableLayout由多个TableRow(表示行)组成。
4.网格布局:是在Android4.0之后引入的一个新布局,和上面的TableLayout有点类似,但GridLayout比TableLayout更加好用、灵活。
5.帧布局:放入的所有控件都会被依次放在左上区域,因此下一个控件会重叠覆盖上一个控件,且无法为控件指定一个确切的位置。一般用于浏览单张图片。
6.绝对布局:这个布局一般不会使用。屏幕的左上角为原点(0,0),横轴为x轴且向右为递增,纵轴为y轴且向下为递增,依据layout_x及layout_y属性分别设置控件的X及Y坐标。
7.约束布局:先说一下约束布局相对于传统布局的优势:①采用可视化的界面,拖拽控件即可完成界面的布局;②解决布局嵌套过多的问题,采用约束的方式来指定各个控件的位置和关系的,它有点类似于RelativeLayout,但远比RelativeLayout要更强大。
2.1 所有布局的公有属性
2.2 各个布局的特有属性
例:水平方向上有3个TextView,设置权重为1:1:1,则代码如下:
运行结果如下:
将权重比例改为1:2:3,运行结果如下。
例:xml布局代码如下:
运行结果如下:
由上面的演示可以看出:
请依次添加添加以下布局属性:
① 收缩1、2列:
android:shrinkColumns="0,1"
运行结果如下:显示不完全的button8显示完全了,并且Button1、Button44444、Button6按钮有收缩
②隐藏第1列:
android:collapseColumns="0"
运行结果如下:由于第4行仅有一个按钮,则整个第四行隐藏。
③ 伸展第3列:
android:stretchColumns="2"
运行结果如下:由于仅有第2、3行有第三列,并且Button3与B5有拉伸。
GridLayout相关属性如下:
注:设置前景图像的位置可以两个属性叠加,例如右下角:bottom|right。
绝对布局很少使用,一般有两个常用控件属性:
约束布局是google推荐的一种布局,有关于其拖拽控件、添加约束、借助Inspector设置属性、Gidelines的使用以及自动添加约束的功能
如果你看到了这里,觉得文章写得不错就给个赞呗!欢迎大家评论讨论!如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足,定期免费分享技术干货。感兴趣的小伙伴可以点一下关注哦。谢谢!