android布局有五大布局:线性布局,表格布局,相对布局,绝对布局,单帧布局。
线性布局用通俗的话来说就是一个挨着一个摆放。
线性布局有两个基本属性:gravity和orientation;
gravity:是设置布局管理器内的组件的对齐方式;
orientation:是设置设置布局管理器内组件的排列方式。
下面是orientation为vertical的实例:
代码是这样的:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
如果把orientation改为horizontal,效果如下:
细心的朋友应该会发现,按钮少了几个。没错,线性布局里排列的组件不会自己换行,及时把屏幕填充满了,它还是继续排列。
添加上Gravity属性会如何呢?
<Button
android:id="@+id/button2"
android:gravity="top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button1"
android:gravity="bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button3"
android:gravity="left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
我稍微在代码上的前三个按钮上添加并设置了gravity属性,效果如下:
看以看出,按钮内button的位置不一样了,没错,gravity就是设置这些内容属性的。