布局是一种可用于防止很多控件的容器,它可以按照一定的规律调整内部控件的位置,从而编写出精美的界面。
布局内部可放置控件,可放置布局。多层布局的嵌套。
四种最基本的布局:线性布局(LinearLayout)、相对布局(RealtiveLayout)、帧布局(FrameLayout)、百分比布局。
线性布局(LinearLayout)
该布局会将它所包含的控件在线性方向上依次排列,
- android:orientation属性指定排列方向。
horizontal 水平的 vertical 垂直的
- android:layout_gravity属性指定控件在布局中的对齐方式
如果android:orientation=“horizontal”,则android:layout_gravity=“top、center_vertical、bottom”
如果android:orientation=“vertical”,则android:layout_gravity=“left、center_horizontal、right”
相对布局(RealtiveLayout)
通过相对定位的方式让控件出现在布局的任何位置
1.相对于父布局定位
android:layout_alignParentLeft//左 android:layout_alignParentRight//右 android:layout_alignParentTop//上 android:layout_alignParentBottom//下 android:layout_centerInParent//中心 属性值均可选true /false
2.相对于控件定位
android:layout_above//上 android:layout_below//下 android:layout_toLeftOf//左边 android:layout_toRightOf//右边 属性值均可选对于其他控件的引用。例如:@id/button3 当一个控件引用另一个控件的id时,该控件一定要定义在引用控件的后面,不然会发生找不到id的错误。 android:layout_alignLeft//表示让一个控件的左边缘和另一个控件的左边缘对齐 android:layout_alignRight//右 android:layout_alignTop//上 android:layout_alignBottom//下
帧布局(FrameLayout)
所有控件默认摆放在布局的左上角。
使用android:layout_gravity属性可以指定控件在布局中的对齐方式。
由于FrameLayout在定位方式的欠缺,导致它的应用场景也比较少,不过可以在“碎片”中用到它。
百分比布局
允许直接指定控件在布局中的百分比。
PercentFrameLayout和PercentRelativeLayout
xmlns:app="http://schemas.android.com/apk/res-auto"//定义了app的命名空间,这样才可以使用自定义属性
app:layout_widthPercent
app:layout_heightPersent
属性值均可以以百分比来指定。