Linear layout
Orientation:垂直/水平布局
Gravity:整体位置。例如整体居中、垂直方向居中、水平方向居中、放在底部(|bottom)
Layout gravity:在父容器中的布局。注意如果父容器要求垂直布局,其只能在水平方向内移动
Divider:添加分割线,需要和showdividers(设置分割线位置)配套使用,且需要在drawable里导入图片
Dividerpadding:分割线到容器两端的距离
Weight:权重。Layoutheight/width和weight共同决定大小。
*如果width/height使用match parent,再结合weight,容易出现错误。
Relative layout
相对布局。没有orientation一项,直接在里面写两个组件的话,会叠加。
Alignparent____ = true:在父容器内的位置,有left right等
Toleftof/torightof/above/aligntop等:根据兄弟组件定位
Margin:和父容器的间距
Padding:组件到父容器的间距,类似margin
效果:
Framelayout
和relative一样会覆盖叠加
Foreground:前景色
Foregroundgravity:前景位置
Tablelayout
Tablerow:用于把几个button放在同一行。不会自动换行,超出的话会显示不出来
隐藏某列
隐藏多列则用逗号隔开,如1,2
允许拉伸某列
允许收缩某列
子控件
Layout column:显示在哪列
Layout_span:横向跨几列
Gridlayout(网格)
Orientation:水平还是垂直显示
Columncount:每行几个,控件在达到上限时会自动换行
Rowcount:每列几个
子控件:
Layout_row:显示在第几行
Layout_rowspan:跨几行
Layout_rowweight:剩余空间分配方式
*列把row换成column
Layout_gravity:网格中的显示位置
注:单独使用span会没有效果,需要结合gravity
Constraintlayout
约束布局,默认生成的。一般不需要写代码。
此布局如果没有约束条件,控件为默认排列。
约束方法:
点击白点,往某个方向拖。四个点都拖就是居中。
也可以定义控件间的相对位置,点击新控件的白点与之前的控件白点相连即可
此处定义button和容器的间距。
此物可以加辅助线
效果
这种做法一般要有推导约束(默认是打开的不用管)