Tampilan tata letak alternatif
Topik ini menjelaskan bagaimana Anda dapat membuat versi tata letak dengan menggunakan kualifikasi sumber daya. Misalnya, membuat versi tata letak yang hanya digunakan saat perangkat berada dalam mode lanskap dan versi tata letak yang hanya untuk mode potret.
Membuat tata letak alternatif
Saat Anda mengklik ikon Tampilan Tata Letak Alternatif (di sebelah kiri Perangkat), panel pratinjau terbuka untuk mencantumkan tata letak alternatif yang tersedia di proyek Anda. Jika tidak ada tata letak alternatif, tampilan Default disajikan:
Saat Anda mengklik tanda plus hijau di samping Versi Baru, dialog Buat Variasi Tata Letak terbuka sehingga Anda dapat memilih kualifikasi sumber daya untuk variasi tata letak ini:
Dalam contoh berikut, kualifikasi sumber daya untuk Orientasi Layar diatur ke Lanskap, dan Ukuran Layar diubah menjadi Besar. Ini membuat versi tata letak baru bernama tanah besar:
Perhatikan bahwa panel pratinjau di sebelah kiri menampilkan efek pilihan kualifikasi sumber daya. Mengklik Tambahkan membuat tata letak alternatif dan mengalihkan Perancang ke tata letak tersebut. Panel pratinjau Tampilan Tata Letak Alternatif menunjukkan tata letak mana yang dimuat ke dalam Perancang melalui penunjuk kanan kecil seperti yang ditunjukkan dalam cuplikan layar berikut:
Mengedit tata letak alternatif
Saat Anda membuat tata letak alternatif, sering kali diinginkan untuk membuat satu perubahan yang berlaku untuk semua versi tata letak fork. Misalnya, Anda mungkin ingin mengubah teks tombol menjadi kuning di semua tata letak. Jika Anda memiliki sejumlah besar tata letak dan Anda perlu menyebarkan satu perubahan ke semua versi, pemeliharaan dapat dengan cepat menjadi rumit dan rawan kesalahan.
Untuk menyederhanakan pemeliharaan beberapa versi tata letak, Perancang menyediakan mode Multi-edit yang menyebarkan perubahan Anda di satu atau beberapa tata letak. Ketika ada lebih dari satu tata letak, ikon Multi-edit ditampilkan:
Saat Anda mengklik ikon Multi-edit , garis muncul yang menunjukkan bahwa tata letak ditautkan (seperti yang ditunjukkan di bawah); yaitu, ketika Anda membuat perubahan pada satu tata letak, perubahan tersebut disebarkan ke tata letak tertaut apa pun. Anda dapat membatalkan tautan semua tata letak dengan mengklik ikon yang dilingkari yang ditunjukkan dalam cuplikan layar berikut:
Jika Anda memiliki lebih dari dua tata letak, Anda dapat secara selektif mengalihkan tombol edit di sebelah kiri setiap pratinjau tata letak untuk menentukan tata letak mana yang ditautkan bersama-sama. Misalnya, jika Anda ingin membuat satu perubahan yang menyebar ke tata letak pertama dan terakhir dari tiga tata letak, Anda akan terlebih dahulu membatalkan tautan tata letak tengah seperti yang ditunjukkan di sini:
Dalam contoh ini, perubahan yang dilakukan pada tata letak Default atau panjang akan disebarkan ke tata letak lain tetapi tidak ke tata letak tanah besar.
Contoh Multi-Edit
Secara umum, ketika Anda membuat perubahan pada satu tata letak, perubahan yang sama disebarkan ke semua tata letak tertaut lainnya. Misalnya, menambahkan widget baru TextView
ke tata letak Default dan mengubah string Portrait
teksnya akan menyebabkan perubahan yang sama dilakukan ke semua tata letak yang ditautkan. Berikut adalah tampilannya dalam tata letak Default :
TextView
juga ditambahkan ke tampilan tata letak tanah besar karena ditautkan ke tata letak Default:
Tetapi bagaimana jika Anda ingin membuat perubahan yang lokal hanya ke satu tata letak (yaitu, Anda tidak ingin perubahan disebarluaskan ke salah satu tata letak lainnya)? Untuk melakukan ini, Anda harus membatalkan tautan tata letak yang ingin Anda ubah sebelum mengubahnya, seperti yang dijelaskan berikutnya.
Membuat perubahan lokal
Misalkan kita ingin kedua tata letak ditambahkan TextView
, tetapi kita juga ingin mengubah string teks dalam tata letak tanah besar menjadi Landscape
bukan Portrait
. Jika kita membuat perubahan ini ke tanah besar saat kedua tata letak ditautkan, perubahan akan disebarluaskan kembali ke tata letak Default . Oleh karena itu, kita harus terlebih dahulu membatalkan tautan dua tata letak sebelum kita membuat perubahan. Ketika kita memodifikasi teks di tanah besar ke Landscape
, Perancang menandai perubahan ini dengan bingkai merah untuk menunjukkan bahwa perubahan bersifat lokal ke tata letak tanah besar dan tidak disebarkan kembali ke tata letak Default:
Saat Anda mengklik tata letak Default untuk melihatnya, TextView
string teks masih diatur ke Portrait
.
Menangani konflik
Jika Anda memutuskan untuk mengubah warna teks di tata letak Default menjadi hijau, Anda akan melihat ikon peringatan muncul pada tata letak tertaut. Mengklik tata letak tersebut membuka tata letak untuk mengungkapkan konflik. Widget yang menyebabkan konflik disorot dengan bingkai merah dan pesan berikut ditampilkan: Perubahan terbaru telah menyebabkan konflik dalam tata letak alternatif ini.
Kotak konflik ditampilkan di sebelah kanan widget untuk menjelaskan konflik:
Kotak konflik memperlihatkan daftar properti yang telah berubah dan mencantumkan nilainya. Mengklik Abaikan Konflik hanya menerapkan perubahan properti ke widget ini. Mengklik Terapkan menerapkan perubahan properti ke widget ini serta ke widget mitra dalam tata letak Default yang ditautkan. Jika semua perubahan properti diterapkan, konflik akan dibuang secara otomatis.
Menampilkan konflik grup
Perubahan properti bukan satu-satunya sumber konflik. Konflik dapat dideteksi saat menyisipkan atau menghapus widget. Misalnya, ketika tata letak tanah besar dibatalkan tautannya dari tata letak Default, dan TextView
tata letak di daratan besar diseret dan dijatuhkan di atas Button
, Perancang menandai widget yang dipindahkan untuk menunjukkan konflik:
Namun, tidak ada penanda pada Button
. Meskipun posisi Button
telah berubah, Button
tidak menunjukkan perubahan yang diterapkan yang khusus untuk konfigurasi lahan besar.
CheckBox
Jika ditambahkan ke tata letak Default, konflik lain dihasilkan, dan ikon peringatan ditampilkan di atas tata letak tanah besar:
Mengklik tata letak tanah besar akan mengungkapkan konflik. Pesan berikut ditampilkan: Perubahan terbaru telah menyebabkan konflik dalam tata letak alternatif ini:
Selain itu, kotak konflik menampilkan pesan berikut:
CheckBox
Menambahkan penyebab konflik karena tata letak tanah besar memiliki perubahan di yang LinearLayout
berisinya. Namun, dalam hal ini kotak konflik menampilkan widget yang baru saja dimasukkan ke dalam tata letak Default ( CheckBox
).
Jika Anda mengklik Abaikan Konflik, Perancang menyelesaikan konflik, memungkinkan widget ditampilkan dalam kotak konflik untuk diseret dan dijatuhkan ke tata letak tempat widget hilang (dalam hal ini, tata letak tanah besar):
Seperti yang terlihat dalam contoh sebelumnya dengan Button
, CheckBox
tidak memiliki penanda perubahan merah karena hanya LinearLayout
memiliki perubahan yang diterapkan dalam tata letak tanah besar.
Persistensi konflik
Konflik dipertahankan dalam file tata letak sebagai komentar XML, seperti yang ditunjukkan di sini:
<!-- Widget Inserted Conflict | id:__root__ | @+id/checkBox1 -->
Oleh karena itu, ketika proyek ditutup dan dibuka kembali, semua konflik masih akan ada - bahkan yang telah diabaikan.