在Android中有四种基本布局,可以放置很多控件的容器,按照一定的个一律调整控件的位置,从而编写出精美的界面
1)线性布局:LinearLayout
让我们来看一段代码
<LinearLayout xmlns:android="http://schemas,android.com/apk/res/android">android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"//android:layout_gravity="top"android:text="Button1"/><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"//android:layout_gravity="center_vertical"android:text="Button2"/><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"//android:layout_gravity="bottom"android:text="Button3"/><LinearLayout/>
其中orientation:vertical就是线性布局中的垂直布局
将其改为orientation:horizantal就是线性布局中的水平布局
注释符后的android:layout_gravity似乎看起来和android:gravity很像,实际上android:gravity是用来控制文字的,而android:layout_gravity是用来控制控件的,需要注意的是android:layout_gravity只能在垂直布局上用到,因为水平布局中的长度是不固定的,每添加一个就加长还有一个也很重要的属性:android:layout_weight,这是用来比例控制控件大小2)相对布局:RelativeLayout
<RelativeLayout xmlns:android="http://schemas,android.com/apk/res/android">android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:text="Button1"/><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_alignParentTop="true"android:text="Button2"/><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="Button3"/><Buttonandroid:id="@+id/button4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_alignParentBottom="true"android:text="Button4"/><Buttonandroid:id="@+id/button5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentBottom="true"android:text="Button5"/><RelativeLayout/>
这里用到的是layout_alignParentTop,layout_alignParentBottm,layout_alignParentLeft,layout_alignParentRight和layout_centerInParent,他们的意思显而易见
除此以外还有,layout_above,layout_below,layout_toLeftof,layout_toRightof
而layout_alignLeft,layout_alignRight,layout_alignTop,layout_alignBottom,则是利用边缘对齐的方式控制控件3)帧布局:FrameLayout它相比于其他两个布局就简单多了,它没有方便的定位方式,所有的控件都会显示在左上角4)百分比布局:PercentFrameLayout以及PercentRelativelayout其中有:app:layout_heightPercent,app:layout_widthPercent而在实际编程中,会发现一个问题,就是如果页面需要大量的重复控件,那么难道我们要一个个,一遍遍写吗?Android为我们提供了,引入布局的操作:<include layout="@layout/title"/>