RelativeLayout
adalah grup tampilan yang menampilkan tampilan turunan di posisi
relatif. Posisi setiap tampilan dapat ditentukan sebagai posisi relatif terhadap elemen yang setara (seperti di
sebelah kiri atau di bawah tampilan lain) atau di posisi relatif terhadap RelativeLayout
induk (seperti sejajar dengan bagian bawah, kiri, atau tengah).
Catatan: Untuk mendapatkan dukungan performa dan fitur yang lebih baik, sebaiknya buat tata letak dengan ConstraintLayout.
RelativeLayout
adalah utilitas yang sangat efektif untuk mendesain antarmuka pengguna
karena dapat menghilangkan grup tampilan bertingkat dan menjaga hierarki tata letak Anda tetap sederhana, sehingga meningkatkan performa. Jika ternyata Anda menggunakan beberapa grup LinearLayout
bertingkat,
Anda dapat menggantinya dengan RelativeLayout
tunggal.
Memosisikan Tampilan
RelativeLayout
memungkinkan tampilan turunan menentukan posisinya relatif terhadap
tampilan induk atau terhadap sesama tampilan turunan (ditentukan menurut ID). Jadi, Anda dapat menyejajarkan dua elemen berdasarkan batas kanan, atau
memosisikannya satu di bawah yang lain, di tengah-tengah layar, di tengah kiri, dan seterusnya. Secara default, semua tampilan turunan
digambar di kiri atas tata letak, sehingga Anda harus menentukan posisi setiap tampilan
menggunakan berbagai properti tata letak yang tersedia dari RelativeLayout.LayoutParams
.
Beberapa properti tata letak yang tersedia untuk tampilan dalam RelativeLayout
meliputi:
android:layout_alignParentTop
- Jika
"true"
, tepi atas tampilan ini diposisikan sejajar dengan tepi atas tampilan induknya. android:layout_centerVertical
- Jika
"true"
, tampilan turunan ini diposisikan di tengah-tengah turunan induknya secara vertikal. android:layout_below
- Memosisikan tepi atas tampilan ini di bawah tampilan yang ditentukan dengan ID resource.
android:layout_toRightOf
- Memosisikan tepi kiri tampilan ini di sebelah kanan tampilan yang ditentukan dengan ID resource.
Ini hanya beberapa contoh. Semua atribut tata letak didokumentasikan di RelativeLayout.LayoutParams
.
Nilai untuk setiap properti tata letak adalah boolean untuk
mengaktifkan posisi tata letak relatif terhadap RelativeLayout
induk, atau ID yang
mereferensikan tampilan lain dalam tata letak yang digunakan sebagai acuan untuk memosisikan tampilan.
Dalam tata letak XML Anda, dependensi terhadap tampilan lain dalam tata letak ini dapat dideklarasikan dalam urutan apa pun. Misalnya, Anda dapat mendeklarasikan bahwa "view1" diposisikan di bawah "view2" meskipun "view2" merupakan tampilan terakhir yang dideklarasikan dalam hierarki. Contoh di bawah ini menunjukkan skenario seperti itu.
Contoh
Setiap atribut yang mengontrol posisi relatif setiap tampilan akan ditekankan.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="16dp" android:paddingRight="16dp" > <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/reminder" /> <Spinner android:id="@+id/dates" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_alignParentLeft="true" android:layout_toLeftOf="@+id/times" /> <Spinner android:id="@id/times" android:layout_width="96dp" android:layout_height="wrap_content" android:layout_below="@id/name" android:layout_alignParentRight="true" /> <Button android:layout_width="96dp" android:layout_height="wrap_content" android:layout_below="@id/times" android:layout_alignParentRight="true" android:text="@string/done" /> </RelativeLayout>
Untuk detail tentang semua atribut tata letak yang tersedia untuk setiap tampilan turunan RelativeLayout
, lihat RelativeLayout.LayoutParams
.