標籤:
gravity的中文意思就是”重心“,就是表示view橫向和縱向的固定位置
android:gravity:是對view控制項本身來說的,是用來設定view本身的文本應該顯示在view的什麼位置,預設值是左側
android:layout_gravity:是相對於包括改元素的父元素來說的,設定該元素在父元素的什麼位置
比方TextView: android:layout_gravity表示TextView在介面上的位置,android:gravity表示TextView文本在TextView的什麼位置,預設值是左側
例如以下範例
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns: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和android:gravity屬性差異