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 oleh masing-masing kode dan memastikan bahwa inset dikirim ke tampilan saudara.

Mengganti inset default

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

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 dengan tepat.

Secara default, setiap ComposeView menggunakan semua inset pada tingkat konsumsi 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 saudara pada perangkat yang menjalankan Android 10 (level API 29) atau yang lebih rendah. Lihat panduan Tampilan layar penuh untuk mengetahui informasi selengkapnya.

Ikon kolom sistem

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

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

Kotlin

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

Java

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