android:layout_gravity和android:gravity屬性的區別

android:gravity / android:layout_gravity區別:

android:gravity 是設置該view類裏面的內容相對於該view的位置,例如設置button裏面的text相對於view的靠左,居中等位置。(也可以在Layout佈局屬性中添加,設置Layout中組件的位置)

android:layout_gravity 是用來設置該view相對與父view的位置,例如設置button在layout裏面的相對位置:屏幕居中,水平居中等。

 

即android:gravity用於設置View中內容相對於View組件的對齊方式,而android:layout_gravity用於設置View組件相對於Container的對齊方式。

 

說的再直白點,就是android:gravity只對該組件內的東西有效,android:layout_gravity只對組件自身有效

 

android:layout_gravity 只在 LinearLayout 和 FrameLayout 中有效: 

①對於 LinearLayout :

當 android:orientation="vertical"  時, 只有水平方向的設置才起作用,垂直方向的設置不起作用。即:left,right,center_horizontal 是生效的。

當 android:orientation="horizontal" 時, 只有垂直方向的設置才起作用,水平方向的設置不起作用。即:top,bottom,center_vertical 是生效的。

②對於 FrameLayout :

任意android:layout_gravity屬性都有效,可以非常方便實現對組件的佈局。

http://blog.csdn.net/dyllove98/article/details/8842318


我們來看我們在項目中如何實現下面的這樣一個佈局:

wKioL1Rsg6yyyQ4XAAAWzK79J9w837.jpg

我們有個一個標題欄,我們可以使用anctionbar來實現

其中+表示添加聯繫人,通信錄要居中

我們如何實現了

假設:我們在外面先定義一個線性佈局,水平排列

其中在定義兩個線性佈局,但是這樣我們無法使用

android:layout_gravity="center_horizontal">因爲父控件是水平方式的,我們就無法讓通信錄居中

下面我們如何讓通信錄居中了,我們可以把最外面的佈局定義爲相對佈局:

代碼如下:


<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="48dp"

    android:background="#e7e7e7"

    android:layout_gravity="center_horizontal">


        <ImageView

            android:id="@+id/add"

            android:layout_width="25dp"

            android:layout_height="25dp"

            android:background="@drawable/add1"

            android:layout_marginLeft="20dp"

            android:layout_centerVertical="true"/>


        <TextView

            android:layout_width="100dp"

            android:layout_height="fill_parent"

            android:text="通信錄"

            android:textColor="#333333"

            android:gravity="center"

            android:textSize="25sp"

            android:layout_centerHorizontal="true"

            />


</RelativeLayout>

這樣我們可以讓添加聯繫人垂直居中顯示,通訊錄水平方向居中顯示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章