Menyiapkan tampilan tepi ke tepi secara manual

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:

  1. Panggil WindowCompat.setDecorFitsSystemWindows(window, false).
  2. Menetapkan kolom sistem menjadi transparan.
  3. 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.