1.线性布局 LinearLayout
常用属性:
android:gravity 设置子控件的对齐方式
android:orientation 排列方式 (分为水平排列和垂直排列)
android:layout_gravity 设置相对于父控件的对齐方式
android:layout_weight 子控件在布局中所占的权重
!LinearLayout不会换行,所以,如果子控件超出屏幕范围,将不会显示。
2.表格布局 TableLayout
继承自LinearLayout,所以,它的本质依然是线性布局。
表格布局并不会明确声明其包含了多少行、多少列,而是通过添加TableRow、其他组件来控制行和列。
设置一个TableRow,即相当于添加了一个表格行。在其中添加子控件,即相当于添加一列。
三种行为方式:
android:collapseColumns 需要被隐藏的列序号
android:shrinkColumns 允许被收缩的列的列序号
android:strechColumns 允许被拉伸的列的列序号
3.帧布局 FrameLayout
为每一个加入其中的组件创建一个空白区域,先创建的组件会置于底层(和栈结构类似)
属性:
可以使用layout_gravity来设置相对于父布局的对齐方式‘
示例:霓虹灯效果
4.相对布局 RelativeLayout
gravity 子组件的对齐方式
centerHorizontal 水平居中
centerVertical 垂直居中
centerInParent 处于父容器的中间位置
alignParentBottom 是否与布局容器底端对齐
alignParentLeft 是否与布局容器左端对齐
alignParentRight 是否与布局容器右端对齐
alignParentTop 是否与布局容器顶端对齐
toRightOf 位于指定ID组件的右端
toLeftOf 位于指定ID组件的左端
above 位于指定ID组件的上方
below 位于指定ID组件的下方
alignTop 与指定ID组件的上边界对齐
alignBottom 与指定ID组件的下边界对齐
alignLeft 与指定ID组件的左边界对齐
alignRight 与指定ID组件的右边界对齐
5.网格布局 GridLayout
Android4.0之后新增的布局。
属性:
alignmentMode 对齐模式
columnCount 列数
rowCount 行数
子组件的属性
layout_column 设置该子组件在第几列
layout_columnSpan 设置该子组件横向跨几列
layout_row 设置该子组件在第几行
layout_rowSpan 设置该子组件纵向跨几行
layout_gravity 设置子组件的对齐方式
代码动态设置行和列:
1.设置新增组件所在的行
GridLayout.Spec rowSpec = GridLayout.spec(int);
2.设置新增组件所在的列
GridLayout.Spec columnSpec = GridLayout.spec(int);
3.把行和列加载到GridLayout
GridLayout.LayoutParams params = new GridLayout.LayoutParams(rowSpec,columnSpec);
4.指定该组件占满父容器
params.setGravity(Gravity,fill);
5.把组件加载到布局中
gridlayout.addView(view,params);
示例:计算器UI布局
6.绝对布局 AbsoluteLayout
手机屏幕的分辨率千差万别,使用绝对布局很难兼顾不同的屏幕大小。所以,AbsoluteLayout已经过时。
版权声明:刚出锅的原创内容,希望对你有帮助~