1.布局介绍
布局介绍为适应各种界面风格,满足开发的需要,Android提供了5种布局方式
LinearLayout(线性布局) 分水平和垂直2种
RelativeLayout(相对布局) 各个组件都是按照相对位置来摆放
FrameLayout(帧布局) 一层一层绘制
TableLayout(表格布局) 一个TableRow代表一行,TableRow中的一个控件代表一列
AbsoluteLayout(绝对布局) 已经被谷歌废弃
通过以上布局我们可以做出来各种复杂的ui效果。
2.线性布局(LinearLayout)
orientation 属性是指定线性布局的排列方向:
horizontal 水平
vertical 垂直
当竖直布局时,只能左右对齐和水平居中,顶部底部对齐竖直居中无效
当水平布局时,只能顶部底部对齐和竖直居中
gravity属性是指定当前控件内容显示位置:
left 左边
right 右边
top 上边
bottom 底边
layout_gravity属性是指定当前控件在父元素的位置:
left 左边
right 右边
top 上边
bottom 底边
layout_weightSum (权重)属性是把线性布局中剩余空间分成N份.
layout_weight (权重)属性是指定当前控件在父元素(线性布局)中占N份.
visibility 属性是控制布局是否显示:
visible 显示
invisible 不显示但占空间
gone 隐藏
3.相对布局(RelativeLayout)
- 要控制位置需要设置每个控件相对于其他控件的位置
- 组件可以重叠
- 所有组件默认位置:左对齐,顶部对齐
相对于其他组件的上下左右
android:layout_toRightOf 在指定控件的右边
android:layout_toLeftOf 在指定控件的左边
android:layout_above 在指定控件的上边
android:layout_below 在指定控件的下边
相对于其他组件对齐
android:layout_alignLeft 跟指定控件左对齐
android:layout_alignRight 跟指定控件右对齐
android:layout_alignTop 跟指定控件顶部对齐
android:layout_alignBottom 跟指定控件底部对齐
相对于父元素对齐
android:layout_alignParentLeft 是否跟父元素左对齐
android:layout_alignParentTop 是否跟父元素顶部对齐
android:layout_alignParentRight 是否跟父元素右对齐
android:layout_alignParentBottom 是否跟父元素底部对齐
在父元素居中方式
android:layout_centerVertical 在父元素中垂直居中
android:layout_centerHorizontal 在父元素中水平居中
android:layout_centerInParent 在父元素中居中
4.帧布局(FrameLayout)
- 组件可以重叠
- 所有组件默认位置:左对齐,顶部对齐,每个组件相当于一个div
- 布局方式的属性与线性布局一致
- 可以设置上下左右对齐,水平竖直居中,设置方式与线性布局一样
- 不能相对于其他组件布局
5.表格布局(TableLayout)
- 每个TableRow 节点是一行,它的每个子节点是一列
- 表格布局中的节点可以不设置宽高,因为设置了也无效
- 根节点TableLayout的子节点宽为匹配父元素,高为包裹内容
- TableRow节点的子节点宽为包裹内容,高为包裹内容
- 以上默认属性无法修改
- 根节点中可以设置以下属性,表示让第1列拉伸填满屏幕宽度的剩余空间
- android:stretchColumns=”1”
6.绝对布局(AbsoluteLayout)
直接指定组件的x、y坐标
android:layout_x="150dp"
android:layout_y="150dp"