6. 三种基本布局
6.1 LinearLayout
线性布局,可在水平、竖直方向上布局。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="top"
android:text="button1"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="top"
android:text="button2"/>
</LinearLayout>
android:orientation: 参数 horizontal 或者 vertical。
控件里面可设置:
android:layout_gravity: 布局排列,
orientation为horizontal时 left、center、right;
orientation为vertical时top、center、bottom;
android:layout_weight: 布局比重,系统把LinearLayout下所有控件指定的layout_weight值相加,得到一个总值,然后每个控件所占大小比例就是该控件的layout_weight / 刚算出的总值。如果有的控件没有设置layout_weight,则按他的具体指定的layout_weith计算,剩余的空间按刚才的比例计算。
6.2 RelativeLayout
相对布局。类似于IOS的xib布局leading、trailing、top、bottom
相对父级布局:
android:layout_alignParentLeft="true" // 左边距对齐父级的左边距
android:layout_alignParentRight="true" // 右边距对齐父级的右边距
android:layout_alignParentTop="true" // 上边距对齐父级的上边距
android:layout_alignParentBottom="true" // 下边距对齐父级的下边距
android:layout_centerInParent="true" // 中心点对齐父级的中心点
相对兄弟控件布局:
android:layout_above="@+id/button3" // 在button3控件的上方 下边距对齐button3的上边距
android:layout_below="@+id/button3" // 在button3控件的下方 上边距对齐button3的下边距
android:layout_toLeftOf="@id/button3" // 在button3控件的左边 右边距对齐button3的左边距
android:layout_toRightOf="@id/button3" // 在button3控件的右边 左边距对齐button3的右边距
android:layout_alignLeft="@id/button3" // 左边距对齐button3的左边距
android:layout_alignRight="@id/button3" // 右边距对齐button3的右边距
android:layout_alignTop="@id/button3" // 上边距对齐button3的上边距
android:layout_alignBottom="@+id/button3" // 下边距对齐button3的下边距
6.3 FrameLayout
帧布局,也可以叫绝对布局。用的比较少。
所有控件都会默认摆放在布局的左上角。
子控件可通过设置layout_gravity来布局。
android:layout_gravity="left"