六、Android-三种基本布局

125 阅读1分钟

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: 布局排列,

orientationhorizontalleftcenterright

orientationverticaltopcenterbottom

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"