Menggunakan inset di View dan Compose

Jika aplikasi Anda berisi kode Compose dan View, Anda mungkin perlu menentukan secara eksplisit inset sistem mana yang harus digunakan dan memastikan inset dikirim ke tampilan turunan.

Mengganti inset default

Anda mungkin perlu mengganti inset default jika layar memiliki kode View dan Compose dalam hierarki yang sama. Dalam hal ini, Anda harus menentukan secara eksplisit inset mana yang harus digunakan, dan inset mana yang harus diabaikan.

Misalnya, jika tata letak terluar Anda adalah tata letak Android View, Anda harus menggunakan inset dalam sistem View dan mengabaikannya untuk Compose. Atau, jika tata letak terluar Anda adalah composable, Anda harus menggunakan inset di Compose, dan menambahkan padding pada composable AndroidView yang sesuai.

Secara default, setiap ComposeView menggunakan semua inset pada tingkat penggunaan WindowInsetsCompat. Untuk mengubah perilaku default ini, tetapkan AbstractComposeView.consumeWindowInsets ke false.

Pengiriman inset yang kompatibel dengan versi lama untuk tampilan

Jika aplikasi Anda berisi kode View, Anda mungkin perlu mengonfirmasi bahwa inset dikirim ke tampilan turunan di perangkat yang menjalankan Android 10 (API level 29) atau yang lebih rendah. Lihat panduan View layar penuh untuk mengetahui informasi selengkapnya.

Ikon panel sistem

Memanggil enableEdgeToEdge memastikan warna ikon panel sistem diperbarui saat tema perangkat berubah.

Saat menggunakan layar penuh, Anda mungkin perlu memperbarui warna ikon panel sistem secara manual agar kontras dengan latar belakang aplikasi. Misalnya, untuk membuat ikon status bar terang:

Kotlin

WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

Java

WindowCompat.getInsetsController(window, window.getDecorView())
    .setAppearanceLightStatusBars(false);