五种常用布局:
线性布局:以水平或垂直方向排列
相对布局:通过相对定位排列
帧布局:开辟空白区域,帧里的控件(层)叠加
表格布局:表格形式排列
绝对布局:通过X,Y坐标排列
相对布局
在activity-main把原来的组件删除,在text中替换把约束布局改成线性布局
androidx.constraintlayout.widget.ConstraintLayout
RelativeLayout
添加一个Button
android:layout_alignParentTop="true"//上边界
android:layout_alignParentStart="true"//左边界
android:layout_marginTop="40dp"//上边距
android:layout_marginStart="40dp"//左边距
同理的方式添加其他的Button
//右下方添加Button
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="40dp"
android:layout_marginBottom="40dp"
//左下角添加Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="65dp"
android:layout_marginBottom="42dp"
//中间位置添加Button
android:layout_centerInParent="true"
//以中间为参考线,中间Button下方40dp添加Button
android:layout_centerHorizontal="true"
android:layout_below="@id/button4"
android:layout_marginTop="40dp"
//以中间为参考,中间Button右方添加Button
android:layout_centerVertical="true"
android:layout_toEndOf="@id/button4"
android:layout_marginLeft="40dp"
运行结果如下:
线性布局
把约束布局的代码改成LinerLayout,添加线性关系
//水平
android:orientation="horizontal"
//垂直
android:orientation="vertical"
这里有个权重,三个Button总共是3,每一个分为1,如果让权重有作用,每个Button的宽度改为0dp
android:layout_weight="1"
运行结果如下:
表格布局
把约束布局改为TableLayout,添加行,在tableLayout中点击TableRow,高设为wrap_content。
把第五个Button放在第二个位置,也就是第五个列设置为1
android:layout_column=“1”
跨列操作:
android:layout_span=“2”
运行结果如下:
练习题目:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
tools:context=".MainActivity">
<LinearLayout
...
android:layout_marginTop="20dp"
android:layout_marginStart="20dp"
android:layout_marginRight="20dp"
android:layout_marginEnd="20dp">
<Button
android:id="@+id/button4"
...
android:text="Button" />
<Button
android:id="@+id/button5"
...
android:text="Button" />
<Button
android:id="@+id/button6"
...
android:layout_weight="2"
android:text="Button" />
</LinearLayout>
<LinearLayout
...
android:layout_centerInParent="true"
android:layout_marginTop="20dp"
android:layout_marginStart="20dp"
android:layout_marginRight="20dp"
android:layout_marginEnd="20dp">
<Button
android:id="@+id/button7"
...
android:layout_weight="2"
android:text="Button" />
<Button
android:id="@+id/button8"
...
android:text="Button" />
<Button
android:id="@+id/button9"
...
android:text="Button" />
</LinearLayout>
<LinearLayout
...
android:layout_alignParentBottom="true"
android:layout_marginTop="20dp"
android:layout_marginStart="20dp"
android:layout_marginRight="20dp"
android:layout_marginEnd="20dp"
>
<Button
android:id="@+id/button10"
...
android:layout_weight="1"
android:text="Button" />
<Button
android:id="@+id/button11"
...
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
</RelativeLayout>
运行结果如下: