Ada dua cara untuk mencapai ini dengan menggunakan ConstraintLayout
: Rantai dan Pedoman . Untuk menggunakan Chains, pastikan Anda menggunakanConstraintLayout
Beta 3 atau lebih baru dan jika Anda ingin menggunakan editor tata letak visual di Android Studio, pastikan Anda menggunakan Android Studio 2.3 Beta 1 atau lebih baru.
Metode 1 - Menggunakan Rantai
Buka editor tata letak dan tambahkan widget Anda seperti biasa, tambahkan batasan induk sesuai kebutuhan. Dalam hal ini, saya telah menambahkan dua tombol dengan batasan di bagian bawah induk dan sisi induk (sisi kiri untuk tombol Simpan dan sisi kanan untuk tombol Bagikan):
Perhatikan bahwa dalam kondisi ini, jika saya beralih ke tampilan lansekap, tampilan tidak mengisi induk tetapi berlabuh ke sudut:
Sorot kedua tampilan, baik dengan mengklik Ctrl / Cmd atau dengan menyeret kotak di sekitar tampilan:
Kemudian klik kanan pada view dan pilih "Center Horizontally":
Ini mengatur koneksi dua arah antara tampilan (yang merupakan cara Chain didefinisikan). Secara default gaya rantai adalah "menyebar", yang diterapkan bahkan ketika tidak ada atribut XML yang disertakan. Tetap menggunakan gaya berantai ini tetapi mengatur lebar tampilan kami untuk 0dp
memungkinkan tampilan memenuhi ruang yang tersedia, menyebar merata di seluruh induk:
Ini lebih terlihat dalam tampilan lanskap:
Jika Anda memilih untuk melewatkan editor tata letak, XML yang dihasilkan akan terlihat seperti:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button_save"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/button_save_text"
android:layout_marginStart="8dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="4dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@+id/button_share"
app:layout_constraintHorizontal_chainStyle="spread" />
<Button
android:id="@+id/button_share"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/button_share_text"
android:layout_marginStart="4dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintLeft_toRightOf="@+id/button_save"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
</android.support.constraint.ConstraintLayout>
Detail:
- mengatur lebar setiap item ke
0dp
atau MATCH_CONSTRAINT
memungkinkan tampilan mengisi induk (opsional)
- pandangan harus ditautkan bersama dua arah (sebelah kanan tombol simpan tautan ke tombol berbagi, sebelah kiri tautan tombol berbagi ke tombol simpan), ini akan terjadi secara otomatis melalui editor tata letak ketika memilih "Pusat Secara Horizontal"
- pandangan pertama dalam rantai dapat menentukan gaya rantai melalui
layout_constraintHorizontal_chainStyle
, lihat dokumentasi untuk berbagai gaya rantai, jika gaya rantai dihilangkan, defaultnya adalah "menyebar"
- bobot rantai dapat disesuaikan melalui
layout_constraintHorizontal_weight
- contoh ini untuk rantai horizontal, ada atribut yang sesuai untuk rantai vertikal
Metode 2 - Menggunakan Pedoman
Buka tata letak Anda di editor dan klik tombol pedoman:
Kemudian pilih "Tambahkan Pedoman Vertikal":
Sebuah pedoman baru akan muncul, bahwa secara default, kemungkinan akan berlabuh ke kiri dalam nilai relatif (dilambangkan dengan panah yang menghadap ke kiri):
Klik panah yang menghadap kiri untuk mengubahnya ke nilai persentase, lalu seret pedoman ke tanda 50%:
Pedoman sekarang dapat digunakan sebagai jangkar untuk pandangan lain. Dalam contoh saya, saya melampirkan kanan tombol simpan dan kiri tombol bagikan ke panduan:
Jika Anda ingin tampilan memenuhi ruang yang tersedia maka batasannya harus diatur ke "Ukuran Apa Pun" (garis berlekuk-lekuk yang berjalan horizontal):
(Ini sama dengan mengatur layout_width
untuk0dp
).
Panduan juga dapat dibuat dalam XML dengan mudah daripada menggunakan editor tata letak:
<android.support.constraint.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />