Memanggil enableEdgeToEdge
mencakup logika yang diperlukan agar benar-benar
kompatibel mundur dan oleh karena itu merupakan cara yang direkomendasikan untuk menyiapkan
tampilan layar penuh. Lihat dokumentasi Compose dan View
alih-alih panduan ini untuk mengetahui cara modern menampilkan layar penuh menggunakan
enableEdgeToEdge
.
Meskipun tidak direkomendasikan, jika aplikasi Anda harus menyiapkan tampilan layar penuh secara manual, Anda dapat mengikuti langkah-langkah berikut:
- Panggil
WindowCompat.setDecorFitsSystemWindows(window, false)
. - Menetapkan kolom sistem menjadi transparan.
- Menangani inset.
Menata aplikasi Anda dalam layar penuh
Gunakan WindowCompat.setDecorFitsSystemWindows(window, false)
untuk menata letak aplikasi Anda di belakang kolom sistem, seperti yang ditunjukkan dalam contoh kode berikut:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) }
Java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WindowCompat.setDecorFitsSystemWindows(getWindow(), false); }
Mengubah warna kolom sistem
Saat membuat tata letak layar penuh secara manual untuk Android 14 dan yang lebih lama, aplikasi Anda juga harus membuat kolom sistem transparan.
Anda dapat mengedit file themes.xml
untuk menetapkan warna status dan menu navigasi sebagai transparan serta mengubah warna ikon status bar.
<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
<item name="android:navigationBarColor">
@android:color/transparent
</item>
<!-- Optional: set to transparent if your app is drawing behind the status bar. -->
<item name="android:statusBarColor">
@android:color/transparent
</item>
<!-- Optional: set for a light status bar with dark content. -->
<item name="android:windowLightStatusBar">
true
</item>
</style>
Anda dapat menggunakan WindowInsetsControllerCompat
API, bukan
theme.xml
untuk mengontrol warna konten status bar. Untuk melakukannya, gunakan fungsi
setAppearanceLightNavigationBars()
dengan meneruskan true
untuk mengubah warna latar depan navigasi menjadi
warna terang atau false
untuk kembali ke warna default.
Kotlin
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
Java
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);
Menangani inset
Terakhir, aplikasi Anda harus menangani inset sehingga UI penting menghindari kolom sistem dan potongan layar. Lihat dokumentasi Compose dan Tampilan untuk mempelajari cara menangani inset.