Dipublikasikan: 28 Februari 2025
Tampilan layar penuh adalah fitur Android yang memungkinkan aplikasi mencakup seluruh lebar dan tinggi layar dengan menggambar di belakang kolom sistem Android.
Sebelum Chrome 135, Chrome di Android tidak menggambar layar penuh. Panduan ini menjelaskan efek perubahan ini pada situs dan tindakan yang dapat Anda lakukan sebagai developer untuk menerapkan perubahan ini.
Bar di mana saja
Android dilengkapi dengan panel sistem yang disediakan oleh sistem operasi itu sendiri.
Bersama-sama, status bar, kolom teks, dan menu navigasi disebut kolom sistem. Mereka menampilkan informasi penting seperti level baterai, waktu, dan peringatan notifikasi, serta menyediakan 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 kolom navigasi gestur modern.
Selain kolom sistem Android, Chrome sendiri dilengkapi dengan kolom URL yang meluas dan menyusut secara dinamis saat Anda men-scroll.
Chrome ditampilkan dalam layar penuh
Saat Anda membuka situs, situs tersebut ditampilkan dalam persegi panjang yang dikenal sebagai area tampilan (tata letak).
Di Chrome untuk Android, sebelum Chrome 135, area tampilan tata letak tersebut digambar di antara status bar atas dan menu navigasi gestur bawah. Keberadaan kolom URL Chrome (atau tidak adanya kolom URL) dapat memengaruhi ukuran area pandang, tetapi area pandang tidak akan pernah meluas ke kolom sistem atas atau kolom navigasi gestur bawah.
Mulai Chrome 135, area tampilan dapat diperluas ke kolom navigasi gestur Android. Perilaku ini dijelaskan 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 keluar dari tampilan saat halaman di-scroll. Namun, status bar atas bawaan Android dan menu navigasi bawaan Android di bagian bawah tetap berada di tempatnya.
Di sini, ukuran area tampilan tata letak berubah saat kolom URL Chrome ditarik atau diperluas.
Perilaku Chrome dengan layar penuh
Mulai Chrome 135, Chrome dapat menggambar konten web hingga ke tepi bawah perangkat dengan memperluas area tampilan ke area kolom navigasi gestur.
Layar penuh dinamis dengan "dagu"
Secara default, Chrome layar penuh menampilkan kolom bawah dinamis baru yang dikenal sebagai "dagu" di area kolom navigasi gestur. Sama seperti kolom URL Chrome, dagu ini akan bergerak ke luar saat Anda mulai men-scroll dan memengaruhi ukuran area tampilan.
Dalam rekaman Chrome di Android berikut dengan dukungan layar penuh, kolom URL dan dagu Chrome akan ditarik secara dinamis saat halaman di-scroll ke bawah. Hal ini menyebabkan viewport meluas, sehingga konten web dapat ditarik hingga ke tepi bawah perangkat.
Perilaku dagu ini adalah perilaku Chrome default baru mulai Chrome 135 dan seterusnya.
Menampilkan layar penuh secara default dengan keikutsertaan
Situs yang dibuat untuk tampilan layar penuh dapat menunjukkannya dengan mengubah tag meta viewport. Jika diaktifkan, area tampilan akan diperluas hingga tepi bawah secara default tanpa dagu terlihat.
Halaman dapat menunjukkan bahwa halaman tersebut mendukung tampilan layar penuh menggunakan tag meta viewport dan kunci viewport-fit-nya.
Untuk memilih ikut serta dalam tampilan layar penuh, tetapkan viewport-fit ke nilai cover.
<meta name="viewport" content="width=device-width, initial-scale=1, viewpo>rt-fit=cover" /
Pelajari lebih lanjut berbagai nilai viewport-fit di MDN.
Menangani konten yang mungkin terhalang oleh kolom navigasi gestur
Dalam mode layar penuh, Anda harus mempertimbangkan konten apa pun yang mungkin terhalang oleh menu navigasi gestur.
Dalam sebagian besar kasus, Anda tidak perlu melakukan apa pun karena dagu bawah akan bergerak sendiri. Pengguna tetap dapat mengakses semua konten di situs Anda seperti sebelumnya.
Namun, jika Anda memilih untuk menampilkan konten di layar penuh secara default atau memiliki elemen yang diposisikan di bagian bawah area tampilan, Anda mungkin perlu memperhitungkan potensi konten tersebut tertutup.
.stuck-to-the-bottom-of-the-viewport {
position: fixed;
bottom: 0;
}
Saat dagu hadir, konten awalnya dapat dijangkau oleh pengguna, tetapi akan terhalang oleh panel navigasi Android saat dagu hilang.
Untuk memitigasi, gunakan inset area aman untuk selalu memosisikan elemen yang terpengaruh di atas kolom navigasi gestur bawah bawaan Android, atau agar latar belakangnya meluas 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 tampilan.
Keempat nilai ini bersama-sama membentuk persegi panjang area aman tempat konten dapat ditempatkan dengan aman sehingga tidak terhalang oleh hal-hal seperti menu navigasi gestur Android.
Menggunakan inset bawah area aman
Untuk elemen yang diposisikan di bagian bawah area tampilan, gunakan safe-area-inset-bottom sebagai nilai untuk properti bottom agar tidak diposisikan di bawah panel navigasi gestur. Nilai yang ditampilkan oleh safe-area-inset-bottom diperbarui secara dinamis saat dagu bergerak menjauh, sehingga elemen yang diposisikan di bawah tetap berada di atas kolom navigasi gestur Android.
.stuck-to-the-bottom-of-the-viewport {
position: fixed;
bottom: env(safe-area-inset-bottom, 0px);
}
bottom. Saat dagu terlihat, panel akan berada di atas panel navigasi gestur Android. Saat dagu hilang, elemen juga berada di atasnya.Seperti yang dapat Anda lihat dalam ilustrasi, hasilnya belum sempurna: saat dagu dipindahkan, konten halaman yang tersisa akan terlihat di area kolom navigasi gestur. Hal ini karena dalam status ini, area tampilan meluas ke area menu navigasi gestur.
Untuk mencegah konten dilukis di bawah konten yang berlabuh di bawah, pendekatan yang umum digunakan adalah menyetel padding-bottom ke safe-area-inset-bottom. Dengan begitu, elemen yang berlabuh di bagian bawah akan otomatis bertambah besar saat dagu menyembunyikan dirinya. Meskipun berhasil, pendekatan ini tidak direkomendasikan karena menyebabkan penyusunan ulang tata letak saat dagu bergerak menjauh.
Jangan tetapkan padding ke nilai inset area aman.
.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 bawah maksimum 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 menjauh, safe-area-max-inset-bottom mewakili nilai maksimum safe-area-inset-bottom.
Gunakan safe-area-max-inset-bottom ini untuk memperbesar elemen yang berlabuh di bawah di bagian depan, 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 terhitung untuk bottom yang perlu berubah saat dagu menjauh, tidak ada thrashing tata letak.
Mencoba tampilan layar penuh sebelum Chrome 135
Untuk mencoba tampilan layar penuh sebelum rilis stabilnya untuk publik, Anda harus mengaktifkan beberapa tanda fitur Chrome melalui chrome://flags:
EdgeToEdgeBottomChin(opsional, setel ke "Aktifkan Debug" akan mewarnai setengah dagu dengan warna merah muda agar lebih jelas dibedakan dari UI lainnya)DrawCutOutEdgeToEdgeBottomBrowserControlsRefactor(jangan setel ke "Diaktifkan", tetapi setel ke "Diaktifkan Pengiriman yOffset")DynamicSafeAreaInsetsDynamicSafeAreaInsetsOnScrollEdgeToEdgeWebOptInDrawKeyNativeEdgeToEdgeEdgeToEdgeSafeAreaConstraint(jangan tetapkan ke "Diaktifkan", tetapi tetapkan ke "Variasi yang Dapat Di-scroll Diaktifkan")
Pastikan flag berikut tidak diaktifkan:
DrawNativeEdgeToEdgeEdgeToEdgeEverywhere
Mulai ulang Chrome dua kali.
Kami ingin masukan dari Anda
Jika ada masukan tentang Chrome dan implementasi layar penuhnya, hubungi kami dengan melaporkan bug Chromium di komponen "UI > Browser > Mobile > EdgeToEdge". Kami sangat menghargai masukan yang Anda berikan.