我知道咱們能夠爲android:gravity
和android:layout_gravity
屬性設置如下值: android
center
center_vertical
center_horizontal
等 可是我對這二者感到困惑。 編程
android:gravity
和android:layout_gravity
的用法有什麼區別? 佈局
若是要在視圖中設置內容的重力,則將使用「 android:gravity」;若是要在其父視圖中設置該視圖(總體)的重力,則將使用「 android: layout_gravity」。 spa
我在Sandip的博客上看到的我幾乎錯過的東西解決了個人問題。 他說layout_gravity
與LinearLayout
不layout_gravity
。 code
若是您使用的是LinearLayout
,而重力設置LinearLayout
您不知所措(例如我),請切換到其餘選項。 xml
我實際上切換到了RelativeLayout
而後在包含的2個TextView
上使用layout_alignParentLeft
和layout_alignParentRight
,使它們在一行上向左和向右移動。 圖片
內部-外部 ip
gravity
將內容排列在視圖內部 。 lay out _gravity
自編視圖的位置自己以外 。 有時也有助於查看圖片。 綠色和藍色是TextViews
,其餘兩種背景顏色是LinearLayouts
。 utf-8
layout_gravity
不適用於RelativeLayout
視圖。 將其用於LinearLayout
或FrameLayout
視圖。 請參閱個人補充答案以獲取更多詳細信息。 gravity
將不會有任何影響。 所以, wrap_content
和gravity
沒有意義。 layout_gravity
將不起做用。 所以, match_parent
和layout_gravity
在一塊兒毫無心義。 layout_gravity=center
在這裏看起來與layout_gravity=center_horizontal
相同,由於它們處於垂直線性佈局中。 在這種狀況下,您不能垂直居中,所以layout_gravity=center
僅水平居中。 gravity
和layout_gravity
。 若要查看在設置父佈局自己的gravity
時會發生什麼,請查看我上面提到的補充答案 。 (摘要: gravity
在RelativeLayout
上不能很好地工做,但在LinearLayout
可能頗有用。) 所以請記住, layout _gravity在其layout中安排一個視圖。 重力將內容安排在視圖內部。 get
這是上面圖像的xml供您參考:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#e3e2ad" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textSize="24sp" android:text="gravity=" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:background="#bcf5b1" android:gravity="left" android:text="left" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:background="#aacaff" android:gravity="center_horizontal" android:text="center_horizontal" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:background="#bcf5b1" android:gravity="right" android:text="right" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:background="#aacaff" android:gravity="center" android:text="center" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="#d6c6cd" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textSize="24sp" android:text="layout_gravity=" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:layout_gravity="left" android:background="#bcf5b1" android:text="left" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:layout_gravity="center_horizontal" android:background="#aacaff" android:text="center_horizontal" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:layout_gravity="right" android:background="#bcf5b1" android:text="right" /> <TextView android:layout_width="200dp" android:layout_height="40dp" android:layout_gravity="center" android:background="#aacaff" android:text="center" /> </LinearLayout> </LinearLayout>
看一下圖像以瞭解重力
只是想我會在這裏添加本身的解釋-來自iOS的背景,這就是我如何在iOS術語中內部化這兩個:「佈局重力」會影響您在超級視圖中的位置。 「重力」會影響子視圖在您內部的位置。 換句話說,「佈局重力」使您本身定位,而重力使孩子定位。