五大布局
LinearLayout 线性布局
- android:orientation=”vertical/horizontal” 子类控件排列方式
vertical
垂直horizontal
水平 - android:gravity=”center/right/left…”子类控件位置
center_horizontal
水平居中center_vertical
垂直居中
可以同时设置多个属性,如bottom|center_horizontal
,设置子类控件位于底部的中央 - 子控件可以通过设置
android:layout_orientation
或android:layout_gravity
来控制位置 - 子控件通过
android:layout_weight
来设置控件的占比。
android:layout_weight
真实含义是:一旦View设置了该属性(假设有效的情况下),那么该 View的宽度等于原有宽度(android:layout_width
)加上剩余空间的占比!Google官方推荐,当使用weight属性时,将width设为0dip即可,效果跟设成
wrap_content
是一样的。这样weight就可以理解为占比了!
- android:orientation=”vertical/horizontal” 子类控件排列方式
RelativeLayout 相对布局
全局属性
android:layout_alignParentLeft=”true”
子类控件相对当前父类容器靠左边android:layout_alignParentTop=”true”
子类控件相对当前父类容器靠上边android:layout_marginLeft=”41dp”
子类控件距离当前父类容器左边的距离android:layout_marginTop=”41dp”
子类控件距离当前父类容器上边的距离android:layout_centerInParent=”true”
子类控件相对当前父类容器水平垂直居中android:layout_centerHorizontal=”true”
子类控件相对当前父类容器水平居中android:layout_centerVertical=”true”
子类控件相对当前父类窗口垂直居中
子控件属性
android:layout_below=”@+id/“
该控件位于给定id控件的底部android:layout_toRightOf=”@+id/“
该控件位于给定id控件的右边android:layout_above=”@+id/“
该控件位于给定id的上面android:layout_toLeftOf=”@+id/“
该控件位于给定id的左边android:layout_alignBaseline=”@+id/“
该控件的内容与给定id控件的内容在一条线上android:layout_alignBottom/android:layout_alignLeft/android:layout_alignRight/android:layout_alignTop
该控件的底部与给定id控件的[底部/左边/右边/顶部]边缘对齐
FrameLayout 帧布局
AbsoluteLayout绝对布局
- 又叫坐标布局,可以直接指定子控件的绝对位置(xy)
android:layout_x/android:layout_y
TableLayout 表格布局
全局属性
TableLayout
以行列的形式管理子控件,每一行为一个TableRow对象,也可以是一个View对象android:collapseColumns=”1,2”
隐藏从0开始的索引列,多列用逗号分隔android:shrinkColumns=”1,2”
收缩从0开始的索引列android:stretchColumns=”1,2”
拉伸从0开始的索引列,*表示所有列
子控件属性
android:layout_column
第n列android:layout_span
占据列宽