1.线性布局
LinearLayout又称线性布局,是一种非常常用的布局
layout_gravity 用于指定控件在布局中的对其形式
layout_weight (平分长/宽)
Button1: 1/3 Button2: 2/3
注:TextView: android:layout_width=“wrap_content”
Button: android:layout_weight=“4” android:layout_width=“0dp”
TextView仍然按照wrap_content计算,而Button则会占满屏幕所有的剩余空间。
这种方式编写的界面,不仅在各种屏幕的适配方面都会非常好,而且看起来会更加舒服
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="你是个文字框" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button2"
android:textAllCaps="false" />
2.相对布局
RelativeLayout又称作相对布局,也是非常常用的一种布局方式。
<Button
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button1"
android:textAllCaps="false" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:text="Button2"
android:textAllCaps="false" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Button3"
android:textAllCaps="false" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:text="Button4"
android:textAllCaps="false" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:text="Button5"
android:textAllCaps="false" />
上述代码是相对于父布局进行定位的
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Button3"
android:textAllCaps="false" />
<Button
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/button3"
android:layout_toLeftOf="@id/button3"
android:text="Button1"
android:textAllCaps="false" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/button3"
android:layout_toRightOf="@id/button3"
android:text="Button2"
android:textAllCaps="false" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button3"
android:layout_toLeftOf="@id/button3"
android:text="Button4"
android:textAllCaps="false" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button3"
android:layout_toRightOf="@id/button3"
android:text="Button5"
android:textAllCaps="false" />
android:layout_above / android:layout_below: 可以让一个控件位于一个控件的上方/下方
android:layout_toRightOf、android:layout_toLeftOf 表示让一个空间在一个空间的右侧/左侧
注意:当一个控件去引用另一个控件的id时候,该控件一定要定义在引用控件的后面,不然会出现找不到id的情况。
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/Button1"
android:layout_alignRight="@id/button3"
android:text="Button5"
android:textAllCaps="false" />
Button5控件和Button1的左对齐 和Button3的右对齐
3.帧布局
FrameLayout又称帧布局,所有控件都默认摆放在布局的左上角
(用处较少,之后介绍碎片的时候还会提到)
4.百分比布局
在这种布局中可以不再使用wrap_content,match_content等方式来指定控件的大小,而是允许直接指定控件在布局中所占的百分比。百分比布局只为了FrameLayout和RelativeLayout进行功能扩展。
为了使百分比布局在所有Android版本中均可以使用,将其定义在support库当中。