2016/03/04

Android 利用 android:gravity 屬性來設定物件的對齊位置

在 Android 版面設計中, 會常需要進行 View 的對齊,

android:gravity 用於此 View 裡面子物件的對齊,

android:layout_gravity 用於此 View 對父物件的對齊,

一般而言,

LinearLayout 搭配 android:gravityandroid:layout_gravity 屬性,

RelativeLayout 搭配 layout_centerInParentandroid:layout_centerVerticalandroid:layout_centerHorizontal 屬性,

可以實現該物件底下的子物件相對於該物件的 靠左 / 靠右 / 置頂 / 置中 / 置底 的對齊功能,

若要在程式中表達, 則為 Gravity.xxxxx,

若使用 Gravity.CENTER_VERTICAL 沒有發生作用, 檢查是否該物件高度為 LayoutParams.FILL_PARENT, 則改為指定實際高度.

關於 Gravity 範例, 如下 :
 程式碼
<!-- 全螢幕 : 黃色 (子物件置於底部) -->
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FFFFFF00"
    android:gravity="bottom"
    >
    <!-- 高度視情況而定 : 藍色 (子物件水平置中&垂直置中) -->
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:background="#FF0000FF"
        >
        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon"
            />
    </LinearLayout>
</LinearLayout>

範例結果 :