本文编写于 344 天前,最后修改于 336 天前,其中某些信息可能已经过时。
LinearLayout(线性布局)
Android中有六大布局(现已扩展到八大布局),分别是:
- LinearLayout(线性布局)
- RealtiveLayout(相对布局)
- TableLayout(表格布局)
- FrameLayout(帧布局)
- AbsoluteLayout(绝对布局)
- GridLayout(网格布局)
一般常用到的是LinearLayout(线性布局)和RealtiveLayout(相对布局)
学习导图

基本代码块:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"/>
一、常用属性
1.orientation属性
指布局内控件的排列方式
LinearLayout(线性布局)内的控件,都是以线性排列的(要么竖着一行要么横着一行)。主要通过LinearLayout
的orientation
属性进行调节。
android:orientation="horizontal"//横向(水平)排列
android:orientation="vertical"//纵向(垂直)排列
2.gravity属性
指控件内布局的对齐方式
大部分控件都会有的一种属性,用于指定控件内部其他控件元素的对齐方向
android:gravity="left"//左对齐
android:gravity="right"//右对齐
android:gravity="top"//顶端对齐
android:gravity="bottom"//底部对齐
android:gravity="center"//居中对齐
3.layout_gravity属性
指该控件在父布局内的对齐方式
4.layout_width/layout_height属性
指控件的宽和高
这两个属性在所有的控件、布局中都存在。因为控件是以二维的形式展示出来,所以width代表控件的宽,height代表控件的高。宽和高虽然可以自己设置但是不会超过父布局(即这个控件(布局)的上一级控件(布局))
android:layout_width="match_parent"//填充父布局 android:layout_height="match_parent"//填充父布局
android:layout_height="wrap_content"//自动高度,但不超过父布局
- ```xml
android:layout_width="100dp"//100单位宽度,但不超过父布局
android:layout_height="100dp"//100单位高度,但不超过父布局
5.id属性
指控件的资源id,在java文件中可以通过findViewbyId(id)寻找到该控件
6.background属性
指为控件指定一个纯色背景、图片背景或资源文件背景(渐变色)
二、Weight(权重属性):
①简单用法
weight属性,一般用于线性布局内控件相较于父容器(如上一个线性布局)所占用的百分比。
2:1比例 | 1:1比例(50%) |
---|---|
![]() | ![]() |
示例代码(2:1比例):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:background="#ADFF2F"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:background="#DA70D6"
android:layout_weight="2"/>
</LinearLayout>
示例代码(1:1比例):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:background="#ADFF2F"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:background="#DA70D6"
android:layout_weight="1"/>
</LinearLayout>
要实现一个1:1的效果,只需要分别把两个LinearLayout的weight改成1即可。