標籤:
1. gravity用來描述當前view的內容在view中的位置。
gravity是控制其內容或者包含的views在該view(或view group)中的位置
2. layout_gravity是表示該view在其父容器view group中的位置。
該屬性只在父容器是LinearLayout和FrameLayout時有效
gravity的中文意思就是”重心“,就是表示view橫向和縱向的固定位置
android:gravity:是對view控制項本身來說的,是用來設定view本身的內容應該顯示在view的什麼位置,預設值是左側。
android:layout_gravity:是相對於包含改元素的父元素來說的,設定該元素在父元素的什麼位置
比如TextView: android:layout_gravity表示TextView在介面上的位置,android:gravity表示TextView文本在TextView的什麼位置,預設值是左側.
基本選項值:
| Value |
Description |
| top |
Put the object at the top of its container, not changing its size. 將對象放在其容器的頂部,不改變其大小. |
| bottom |
Put the object at the bottom of its container, not changing its size. 將對象放在其容器的底部,不改變其大小. |
| left |
Put the object at the left edge of its container, not changing its size. 將對象放在其容器的左側,不改變其大小. |
| right |
Put the object at the right edge of its container, not changing its size. 將對象放在其容器的右側,不改變其大小. |
| center_vertical |
Place object in the vertical center of its container, not changing its size. 將對象縱向置中,不改變其大小. 垂直對齊:垂直方向上置中對齊。 |
| fill_vertical |
Grow the vertical size of the object if needed so it completely fills its container. 必要的時候增加對象的縱向大小,以完全充滿其容器. 垂直方向填充 |
| center_horizontal |
Place object in the horizontal center of its container, not changing its size. 將對象橫向置中,不改變其大小. 水平對齊:水平方向上置中對齊 |
| fill_horizontal |
Grow the horizontal size of the object if needed so it completely fills its container. 必要的時候增加對象的橫向大小,以完全充滿其容器. 水平方向填充 |
| center |
Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. 將對象橫縱置中,不改變其大小. |
| fill |
Grow the horizontal and vertical size of the object if needed so it completely fills its container. This is the default. 必要的時候增加對象的橫縱向大小,以完全充滿其容器. |
| clip_vertical |
Additional option that can be set to have the top and/or bottom edges of the child clipped to its container‘s bounds. The clip is based on the vertical gravity: a top gravity clips the bottom edge, a bottom gravity clips the top edge, and neither clips both edges. 附加選項,用於按照容器的邊來剪下對象的頂部和/或底部的內容. 剪下基於其縱向對齊設定:頂部對齊時,剪下底部;底部對齊時剪下頂部;除此之外剪下頂部和底部. 垂直方向裁剪 |
| clip_horizontal |
Additional option that can be set to have the left and/or right edges of the child clipped to its container‘s bounds. The clip is based on the horizontal gravity: a left gravity clips the right edge, a right gravity clips the left edge, and neither clips both edges. 附加選項,用於按照容器的邊來剪下對象的左側和/或右側的內容. 剪下基於其橫向對齊設定:左側對齊時,剪下右側;右側對齊時剪下左側;除此之外剪下左側和右側. 水平方向裁剪 |
如下例子
view plain
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:layout_width="100dip"
- android:layout_height="100dip"
- android:layout_gravity="bottom|center_horizontal"
- android:gravity="center|bottom"
- android:background="#00FF00"
- android:text="@string/textview"
- />
- <Button
- android:layout_width="100dip"
- android:layout_height="100dip"
- android:layout_gravity="bottom|left"
- android:gravity="left|top"
- android:background="#FF0000"
- android:text="@string/button"
- />
- </LinearLayout>
注意,TextView並沒有按照我們設定的android:layout_gravity屬性那樣顯示在介面的下方正中央,Button也沒有顯示在介面的左下方。這是因為我們設定了 LinearLayout的android:orientation屬性為"vertical"。對於LinearLayout如果設定 android:orientation="vertical",那麼android:layout_gravity的設定只在水平方向生效,如 TextView顯示在螢幕的水平正中央,而Button顯示在水平方向的最左邊;如果設定 android:orientation="horizontal",那麼android:layout_gravity屬性只在垂直方向生效
Android layout屬性之gravity和layout_gravity