Si votre application contient à la fois du code Compose et du code View, vous devrez peut-être être explicite sur les encarts système que chacun doit consommer et vous assurer que les encarts sont distribués aux vues sœurs.
Remplacer les marges intérieures par défaut
Vous devrez peut-être remplacer les marges intérieures par défaut lorsque votre écran contient à la fois des vues et du code Compose dans la même hiérarchie. Dans ce cas, vous devez indiquer explicitement lequel doit consommer les encarts et lequel doit les ignorer.
Par exemple, si votre mise en page la plus externe est une mise en page de vue Android, vous devez utiliser les marges intérieures dans le système de vue et les ignorer pour Compose.
Si votre mise en page la plus externe est un composable, vous devez consommer les marges intérieures dans Compose et ajouter un espace aux composables AndroidView
en conséquence.
Par défaut, chaque ComposeView
consomme tous les insets au niveau de consommation WindowInsetsCompat
. Pour modifier ce comportement par défaut, définissez ComposeView.consumeWindowInsets
sur false
.
Distribution des encarts rétrocompatible pour les vues
Si votre application contient du code Views, vous devrez peut-être vérifier que les encarts sont distribués aux vues sœurs sur les appareils équipés d'Android 10 (niveau d'API 29) ou version antérieure. Pour en savoir plus, consultez le guide des vues bord à bord.
Icônes de la barre système
L'appel de enableEdgeToEdge
garantit que les couleurs des icônes de la barre système sont mises à jour lorsque le thème de l'appareil change.
Lorsque vous passez en mode bord à bord, vous devrez peut-être mettre à jour manuellement les couleurs des icônes de la barre système afin qu'elles contrastent avec l'arrière-plan de votre application. Par exemple, pour créer des icônes de barre d'état claires:
Kotlin
WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
Java
WindowCompat.getInsetsController(window, window.getDecorView()) .setAppearanceLightStatusBars(false);