Bagikan melalui


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:

Alternate layout view pane

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:

Create layout variation

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:

Large-land variation

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:

Loaded layout indicator

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:

Multi-edit icon

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:

Unlink all layouts

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:

Unlink middle layout

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 :

Add TextView

TextView juga ditambahkan ke tampilan tata letak tanah besar karena ditautkan ke tata letak Default:

Landscape TextView

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:

Local change

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.

Conflicting change

Kotak konflik ditampilkan di sebelah kanan widget untuk menjelaskan konflik:

Conflict warning

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:

View group conflict

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:

Checkbox conflict

Mengklik tata letak tanah besar akan mengungkapkan konflik. Pesan berikut ditampilkan: Perubahan terbaru telah menyebabkan konflik dalam tata letak alternatif ini:

Alt layout conflict

Selain itu, kotak konflik menampilkan pesan berikut:

Conflict message

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):

Resolved group conflict

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.