Menggunakan inset di View dan Compose

Jika aplikasi Anda berisi kode Compose dan View, Anda mungkin perlu menjelaskan inset sistem yang harus digunakan masing-masing dan memastikan bahwa inset dikirim ke tampilan saudara.

Mengganti inset default

Anda mungkin perlu mengganti inset default saat layar memiliki kode View dan Compose dalam hierarki yang sama. Dalam hal ini, Anda harus menentukan dengan jelas mana yang harus menggunakan inset, dan mana yang harus mengabaikannya.

Misalnya, jika tata letak terluar Anda adalah tata letak View Android, Anda harus menggunakan inset di 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 sebagaimana mestinya.

Secara default, setiap ComposeView menggunakan semua inset pada tingkat konsumsi WindowInsetsCompat. Untuk mengubah perilaku default ini, tetapkan ComposeView.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 saudara di perangkat yang menjalankan Android 10 (API level 29) atau yang lebih rendah. Lihat panduan View dari tepi ke tepi untuk 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 menu 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);