1. 程式人生 > >相對布局

相對布局

gravity 技術分享 通過 textview 水平居中 tab odin pan bottom

相對布局時按照組件之間的相對位置來進行布局,如一個組件在另一個組件的左邊,右邊等。

相對布局支持的常用XML屬性:android:gravity,用於設置布局管理器中各子組件的對齊方式,android:ignoreGravity,用於指定哪個組件不受gravity的影響。

表格布局中,僅僅只有以上兩個屬性是不夠的,為了更好的控制該布局管理器中各個組件的布局分布,RelativeLayout提供了一個內部類RelativeLayout.LayoutParams,通過該類提供的大量XML屬性,可以很好的的控制相對布局管理器中各組件的分布方式,如下表

RelativeLayout.LayoutParams裏只能設為true、false的boolean值的屬性
xml屬性 說明
android:layout_centerHorizontal 控制該子組件是否位於布局容器的水平居中
android:layout_centerVertical 控制該子組件是否位於布局容器的垂直居中
android:layout_centerInParent 控制該子組件是否位於布局容器的中央位置
android:layout_alignParentBottom 控制該子組件是否與布局容器底端對齊
android:layout_alignParentLeft 控制該子組件是否與布局容器左邊對齊
android:layout_alignParentRight
控制該子組件是否與布局容器右邊對齊
android:layout_alignParentTop 控制該子組件是否與布局容器頂端對齊

RelativeLayout.LayoutParams裏只能設為其他UI組件ID的屬性
xml屬性 說明
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組件的右邊界對齊

技術分享圖片

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/ic_launcher_background">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="發現有Widget新版本,你想現在就安裝嗎?"
android:id="@+id/textView1"
android:layout_alignParentRight="true"
android:textSize="36px"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="現在更新"
android:textSize="36px"
android:id="@+id/button1"
android:layout_below="@id/textView1"
android:layout_toLeftOf="@id/button2"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="稍後再說"
android:textSize="36px"
android:id="@+id/button2"
android:layout_alignRight="@id/textView1"
android:layout_below="@id/textView1"/>


</RelativeLayout>

相對布局