在相對布局(relativelayout)中,子控制項的位置是相對兄弟控制項或父容器而決定的。出於效能考慮,在設計相對布局時,要按照控制項之間的依賴關係排列。如view a的位置相當於view b來決定,則需要保證布局檔案中view b在view a的前面。
在進行相對布局時,用到的布局屬性有很多,首先來看屬性值為true或false的屬性,見下表:
相對布局中取值為true或false的屬性列表
屬性名稱
屬性說明
android:layout_centerhorizontal
當前控制項位於父控制項的橫向中間位置
android:layout_centervertical
當前控制項位於父控制項的縱向中間位置
android:layout_centerinparent
當前控制項位於父控制項的**位置
android:layout_alignparentbottom
當前控制項底端與父控制項底端對齊
android:layout_alignparentleft
當前控制項左側與父控制項左側對齊
android:layout_alignparentright
當前控制項右側與父控制項右側對齊
android:layout_alignparenttop
當前控制項頂端與父控制項頂端對齊
android:layout_alignwithparentifmissing
參照控制項不存在或不可見時參照父控制項
接下來再來看看屬性值為其他控制項id的屬性,見下表:
相對布局中取值為其他控制項id的屬性及其說明
屬性名稱
屬性說明
android:layout_torightof
使當前控制項位於給出id控制項的右側
android:layout_toleftof
使當前控制項位於給出id控制項的左側
android:layout_above
使當前控制項位於給出id控制項的上方
android:layout_below
使當前控制項位於給出id控制項的下方
android:layout_aligntop
使當前控制項的上邊界與給出id控制項的上邊界對齊
android:layout_alignbottom
使當前控制項的下邊界與給出id控制項的下邊界對齊
android:layout_alignleft
使當前控制項的左邊界與給出id控制項的左邊界對齊
android:layout_alignright
使當前控制項的右邊界與給出id控制項的右邊界對齊
最後介紹的是屬性值以畫素為單位的屬性及說明,見下表:
相對布局中取值為畫素的屬性及說明
屬性名稱
屬性說明
android:layout_marginleft
當前控制項左側的留白
android:layout_marginright
當前控制項右側的留白
android:layout_margintop
當前控制項上方的留白
android:layout_marginbottom
當前控制項下方的留白
android:layout_margin
當前控制項上下左右四個方向的留白
上面的取值為畫素的屬性這裡再補充幾個:
android:paddingleft 當前控制項中內容距離控制項左邊留白
android:paddingright 當前控制項中內容距離控制項右邊留白
android:paddingtop 當前控制項中內容距離控制項頂部留白
android:paddingbottom 當前控制項中內容距離控制項底部留白
需要注意的是:在進行相對布局時要避免出現迴圈依賴,例如設定相對布局在父容器中的排列方式為wrap_content,就不能再將相對布局的子控制項設定為align_parent_bottom。因為這樣會造成子控制項和父控制項相互依賴和參照的錯誤。
下面就先來看看相對布局的效果圖:
其中main.xml**如下:
view plainactivity**為:copy
xmlversion
="1.0"
encoding
="utf-8"
?>
<
relativelayout
android:id
="@+id/relativelayout01"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
android:background
="#ffffff"
xmlns:android
="">
<
imageview
android:id
="@+id/imageview01"
android:background
="@drawable/center"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_centerinparent
="true"
>
imageview
>
<
imageview
android:id
="@+id/imageview02"
android:background
="@drawable/down"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_torightof
="@id/imageview01"
android:layout_aligntop
="@id/imageview01"
>
imageview
>
<
imageview
android:id
="@+id/imageview03"
android:background
="@drawable/up"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:layout_above
="@id/imageview01"
android:layout_alignleft
="@id/imageview01"
>
imageview
>
relativelayout
>
view plaincopy
package
com.sunchis;
import
import
android.os.bundle;
public
class
android
extends
activity
}
RelativeLayout的子控制項的布局屬性
android layout above 將該控制項的底部置於給定id的控制項之上 android layout below 將該控制項的頂部置於給定id的控制項之下 android layout toleftof 將該控制項的右邊緣和給定id的控制項的左邊緣對齊 android layout to...
RelativeLayout相對布局
relativelayout相對布局是個人覺得在android布局中比較常用且好用的乙個,當然如果想讓布局更漂亮是需要多種布局混合搭建的,這裡就需要更深入的學習了,在這只介紹下有關相對布局的東西。相對於兄弟元素 android layout below id aaa 在指定view的下方 andro...
RelativeLayout 重要屬性
第一類 屬性值為true或false android layout centerhrizontal 水平居中 android layout centervertical 垂直居中 android layout centerinparent 相對于父元素完全居中 android layout alig...