Dipublikasikan: 28 Februari 2025
Tampilan layar penuh adalah fitur Android yang memungkinkan aplikasi mencakup seluruh lebar dan tinggi layar dengan menggambar di balik kolom sistem Android.
Sebelum Chrome 135, Chrome di Android tidak menggambar tampilan layar penuh. Panduan ini menjelaskan efek perubahan ini pada situs dan tindakan yang dapat Anda lakukan sebagai developer untuk menyikapi perubahan ini.
Bar di mana saja
Android dilengkapi dengan kolom sistem yang disediakan oleh sistem operasi itu sendiri.
Status bar, kolom teks, dan menu navigasi disebut sebagai kolom sistem. Widget menampilkan informasi penting seperti level baterai, waktu, dan pemberitahuan notifikasi, serta memberikan interaksi perangkat langsung dari mana saja.
Di bagian atas layar, Anda dapat menemukan status bar, yang berisi ikon notifikasi dan ikon sistem.
Di bagian bawah layar, Anda dapat menemukan menu navigasi, yang memungkinkan Anda mengontrol navigasi menggunakan kontrol kembali, layar utama, dan ringkasan. Ini dapat berupa navigasi tiga tombol klasik atau menu navigasi gestur modern.
Selain kolom sistem Android, Chrome sendiri dilengkapi dengan kolom URL yang secara dinamis meluas dan menyusut saat Anda men-scroll.
Chrome menampilkan tata letak layar penuh
Saat Anda membuka situs, situs tersebut akan ditampilkan dalam persegi panjang yang dikenal sebagai area pandang (tata letak).
Di Chrome pada Android, sebelum Chrome 135, area pandang tata letak tersebut digambar di antara status bar atas dan menu navigasi gestur bawah. Keberadaan kolom URL Chrome (atau ketiadaannya) dapat memengaruhi ukuran area pandang, tetapi area pandang tidak akan pernah meluas ke kolom sistem atas atau menu navigasi gestur bawah.
Mulai Chrome 135, area pandang diizinkan untuk diperluas ke menu navigasi gestur Android. Perilaku ini disebut sebagai layar penuh.
Perilaku Chrome tanpa tata letak layar penuh
Rekaman berikut menunjukkan Chrome di Android tanpa dukungan layar penuh, kolom URL Chrome (di bagian atas) secara dinamis menghilang saat halaman di-scroll. Namun, status bar atas native Android dan menu navigasi native Android di bagian bawah tetap berada di tempatnya.
Di sini, ukuran area pandang tata letak berubah saat kolom URL Chrome ditarik atau diperluas.
Perilaku Chrome dengan tata letak layar penuh
Mulai Chrome 135, Chrome dapat menggambar konten web hingga tepi bawah perangkat dengan memperluas area tampilan ke area menu navigasi gestur.
Tampilan layar penuh dinamis dengan "dagu"
Secara default, Chrome edge-to-edge menampilkan panel bawah dinamis baru yang dikenal sebagai "chin" di area menu navigasi gestur. Sama seperti kolom URL Chrome, chin ini akan menghilang saat Anda mulai men-scroll dan memengaruhi ukuran area pandang.
Dalam rekaman Chrome di Android dengan dukungan layar penuh berikut, kolom URL dan chin Chrome ditarik secara dinamis saat halaman di-scroll ke bawah. Hal ini menyebabkan area pandang meluas, sehingga konten web dapat digambar hingga tepi bawah perangkat.
Perilaku chin ini adalah perilaku Chrome default baru mulai Chrome 135 dan seterusnya.
Menampilkan aplikasi dalam layar penuh secara default dengan keikutsertaan
Situs yang dibuat untuk tampilan layar penuh dapat menunjukkan hal tersebut dengan mengubah tag meta viewport. Jika diaktifkan, area pandang akan diperluas hingga tepi bawah secara default tanpa menampilkan dagu.
Halaman dapat menunjukkan bahwa halaman tersebut mendukung tampilan layar penuh menggunakan tag meta viewport dan kunci viewport-fit-nya.
Untuk mengaktifkan tampilan layar penuh, tetapkan viewport-fit ke nilai cover.
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
Pelajari lebih lanjut berbagai nilai viewport-fit di MDN.
Menangani konten yang mungkin terhalang oleh menu navigasi gestur
Dalam mode layar penuh, Anda harus mempertimbangkan konten apa pun yang mungkin terhalang oleh menu navigasi gestur.
Biasanya, Anda tidak perlu melakukan apa pun karena dagu bawah akan bergerak sendiri. Pengguna masih dapat menjangkau semua konten di situs Anda seperti sebelumnya.
Namun, jika Anda memilih untuk menggunakan layar penuh secara default atau memiliki elemen yang diposisikan di bagian bawah area pandang, Anda mungkin perlu memperhitungkan bahwa konten tersebut berpotensi tertutup.
.stuck-to-the-bottom-of-the-viewport {
position: fixed;
bottom: 0;
}
Saat chin ada, konten awalnya akan dapat dijangkau oleh pengguna, tetapi akan terhalang oleh menu navigasi Android saat chin menghilang.
Untuk mengatasinya, gunakan inset area aman untuk selalu memosisikan elemen yang terpengaruh di atas menu navigasi gestur bawah native Android, atau agar latar belakangnya diperluas ke area tersebut.
Inset area aman
Inset area aman adalah empat variabel lingkungan yang menentukan persegi panjang berdasarkan inset atas, kanan, bawah, dan kirinya dari tepi area pandang.
Gabungan keempat nilai ini membentuk persegi panjang area aman yang aman untuk menempatkan konten agar tidak terhalang oleh hal-hal seperti menu navigasi gestur Android.
Menggunakan inset bawah area aman
Untuk elemen yang diposisikan di bagian bawah area pandang, gunakan safe-area-inset-bottom sebagai nilai untuk properti bottom agar tidak diposisikan di bawah menu navigasi gestur. Nilai yang ditampilkan oleh safe-area-inset-bottom akan diperbarui secara dinamis saat chin bergerak, sehingga elemen yang diposisikan di bawah tetap berada di atas menu navigasi gestur Android dengan baik.
.stuck-to-the-bottom-of-the-viewport {
position: fixed;
bottom: env(safe-area-inset-bottom, 0px);
}
bottom. Saat dagu terlihat, panel berada di atas menu navigasi gestur Android. Saat chin hilang, elemen juga berada di atasnya.Seperti yang Anda lihat dalam ilustrasi, hasilnya belum sempurna: saat chin dipindahkan, konten halaman yang tersisa akan terlihat di area menu navigasi gestur. Hal ini karena dalam status ini, area pandang meluas ke area menu navigasi gestur.
Untuk mencegah konten dirender di bawah konten yang diposisikan di bawah, pendekatan yang umum digunakan adalah menetapkan padding-bottom ke safe-area-inset-bottom. Dengan begitu, elemen yang ditambatkan di bawah akan otomatis bertambah besar saat chin disembunyikan. Meskipun berhasil, pendekatan ini tidak direkomendasikan karena menyebabkan layout thrashing saat chin dipindahkan.
Jangan tetapkan padding ke nilai safe-area-inset.
.stuck-to-the-bottom-of-the-viewport {
position: fixed;
bottom: 0;
padding-bottom: env(safe-area-inset-bottom, 0px); /* 🛑 Don't do this, as it causes layout thrashing. */
}
Menggunakan inset bawah area aman dan inset maksimum bawah area aman
Sebagai gantinya, pendekatan yang direkomendasikan adalah menggunakan kombinasi safe-area-inset-bottom dan safe-area-max-inset-bottom. Tidak seperti safe-area-inset-bottom dinamis yang diperbarui secara dinamis saat dagu bergerak, safe-area-max-inset-bottom mewakili nilai maksimum safe-area-inset-bottom.
Gunakan safe-area-max-inset-bottom ini untuk memperbesar elemen yang diposisikan di bawah di awal, dan gabungkan dengan safe-area-inset-bottom untuk menarik elemen ke bawah sehingga berada di belakang dagu.
Gunakan safe-area-max-inset-bottom bersama dengan safe-area-inset-bottom
:root {
--safe-area-max-inset-bottom: env(safe-area-max-inset-bottom, 36px);
--bottom-bar-height: 50px;
}
.stuck-to-the-bottom-of-the-viewport {
position: fixed;
bottom: 0;
height: var(--bottom-bar-height);
padding-bottom: var(--safe-area-max-inset-bottom);
bottom: calc(env(safe-area-inset-bottom, 0px) - var(--safe-area-max-inset-bottom));
}
body {
padding-bottom: calc(var(--bottom-bar-height) + var(--safe-area-max-inset-bottom));
}
Hasil visualnya sama dengan pendekatan padding-bottom: env(safe-area-inset-bottom, 0px);, tetapi performanya jauh lebih baik. Karena hanya nilai yang dihitung untuk bottom yang perlu berubah saat dagu menjauh, tidak terjadi layout thrashing.
Mencoba tampilan layar penuh sebelum Chrome 135
Untuk mencoba tampilan layar penuh sebelum rilis stabil publiknya, Anda harus mengaktifkan beberapa tombol fitur Chrome melalui chrome://flags:
EdgeToEdgeBottomChin(opsional, tetapkan ke "Enabled Debug" untuk mewarnai separuh chin dengan warna merah muda agar lebih jelas membedakannya dari UI lain)DrawCutOutEdgeToEdgeBottomBrowserControlsRefactor(jangan tetapkan ke "Enabled", tetapi tetapkan ke "Enabled Dispatch yOffset")DynamicSafeAreaInsetsDynamicSafeAreaInsetsOnScrollEdgeToEdgeWebOptInDrawKeyNativeEdgeToEdgeEdgeToEdgeSafeAreaConstraint(jangan tetapkan ke "Enabled", tetapi tetapkan ke "Enabled Scrollable Variation")
Pastikan flag berikut tidak diaktifkan:
DrawNativeEdgeToEdgeEdgeToEdgeEverywhere
Mulai ulang Chrome dua kali.
Kami ingin masukan dari Anda
Jika Anda memiliki masukan tentang Chrome dan penerapan tampilan layar penuhnya, hubungi kami dengan melaporkan bug Chromium di komponen "UI > Browser > Mobile > EdgeToEdge". Kami sangat menghargai masukan yang Anda berikan.