Untuk mengonfigurasi perilaku penampung FlexBox, buat blok FlexBoxConfig
dan berikan menggunakan parameter config.
FlexBox( config = { direction(FlexDirection.Column) wrap(FlexWrap.Wrap) alignItems(FlexAlignItems.Center) alignContent(FlexAlignContent.SpaceAround) justifyContent(FlexJustifyContent.Center) gap(16.dp) } ) { // child items }
Gunakan FlexBoxConfig untuk menentukan arah tata letak, perilaku wrapping,
penyelarasan, dan jarak antar-item.
Arah tata letak
Fungsi direction menetapkan sumbu utama, yang menentukan arah tata letak item. Atribut ini menerima nilai berikut:
Row(default): Menetapkan sumbu utama menjadi horizontal. Di lokalitas kiri-ke-kanan, ini akan menjadi kiri-ke-kanan, dengan kebalikannya di kanan-ke-kiri.RowReverse: Membalikkan arahRow.Column: Menetapkan sumbu utama menjadi vertikal, dari atas ke bawah.ColumnReverse: Membalikkan arahColumn.
Menyejajarkan item dan mendistribusikan ruang ekstra
Bagian berikut menjelaskan cara menyelaraskan item dan mendistribusikan ruang ekstra di sepanjang sumbu utama dan sumbu silang.
Di sepanjang sumbu utama
Gunakan justifyContent untuk mendistribusikan item di sepanjang sumbu utama. Tabel berikut menunjukkan perilaku saat arahnya adalah Row.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Di sepanjang sumbu silang
Gunakan alignItems untuk menyelaraskan item di sepanjang sumbu silang dalam satu baris. Perilaku ini dapat diganti oleh setiap item menggunakan
pengubah alignSelf.
Gambar berikut menunjukkan perilaku saat arahnya adalah Row:
|
|
|
|
|
|
|
|
|
|
|
Gunakan alignContent untuk menyelaraskan garis ke sumbu silang dan mendistribusikan ruang ekstra di antara garis. Properti ini hanya berlaku jika ada beberapa baris
(penggabungan diaktifkan). Gambar berikut menunjukkan perilaku saat arahnya
adalah Row:
|
|
|
|
|
|
|
|
|
|
|
|
|
Menggabungkan item
Pelipatan memungkinkan penampung FlexBox menjadi multi-baris, memindahkan item yang tidak
muat ke baris atau kolom baru di sepanjang sumbu silang. Konfigurasi perilaku pembungkusan
menggunakan wrap.
|
Contoh menggunakan arah |
|
|
|
|
|
|
Contoh berikut menunjukkan cara kerja algoritma pembungkusan FlexBox. Penampung
FlexBox memiliki ukuran utama 100dp, dengan wrap ditetapkan ke
FlexWrap.Wrap dan jarak 8dp. Hasil ini berisi tiga item dengan basis 20dp,
40dp, dan 50dp.
Tersedia 100dp ruang di antrean. Anak 1 adalah 20dp.
Ada ruang, jadi Turunan 1 ditempatkan ke dalam baris.
FlexBox.Ada 80dp ruang yang tersedia dalam antrean. Selisihnya adalah 8dp. Anak 2 adalah
40dp. Ruang yang diperlukan adalah 48dp. Ada ruang, sehingga kesenjangan dan Turunan 2
ditempatkan ke dalam baris.
FlexBox setelah item pertama.Tersedia 32dp ruang di antrean. Selisihnya adalah 8dp. Anak 3 adalah
50dp. Ruang yang diperlukan adalah 58dp. Tidak ada cukup ruang di baris
saat ini, sehingga Child 3 ditempatkan di baris baru.
Menambahkan jarak antar-item
Tambahkan celah di antara baris dan kolom menggunakan rowGap dan columnGap. Hal ini berguna
untuk menghindari penambahan pengubah penspasian ke turunan.
|
|
|
menambahkan ruang vertikal di antara item dan baris. |
menambahkan ruang horizontal di antara item dan baris. |
|