Configurer manuellement l'écran bord à bord

L'appel de enableEdgeToEdge encapsule la logique nécessaire pour être véritablement rétrocompatible. Il s'agit donc de la méthode recommandée pour configurer un affichage de bord à bord. Pour découvrir comment passer à l'affichage de bord à bord à l'aide de enableEdgeToEdge, consultez la documentation sur Compose et les vues au lieu de ce guide.

Bien que cela ne soit pas recommandé, si votre application doit configurer manuellement un affichage sans bordure, vous pouvez suivre ces étapes :

  1. Appelez WindowCompat.setDecorFitsSystemWindows(window, false).
  2. Définissez les barres système sur transparentes.
  3. Gérer les encarts.

Disposer votre application en plein écran

Utilisez WindowCompat.setDecorFitsSystemWindows(window, false) pour disposer votre application derrière les barres système, comme illustré dans l'exemple de code suivant :

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);
}

Modifier la couleur des barres système

Lorsque vous créez manuellement une mise en page bord à bord pour Android 14 ou version antérieure, votre application doit également rendre les barres système transparentes.

Vous pouvez modifier le fichier themes.xml pour définir la couleur de la barre d'état et de la barre de navigation comme transparente, et modifier la couleur de l'icône de la barre d'état.

<!-- values-v29/themes.xml -->
<style name="Theme.M>yAp<p"
  item name="android:navi>gationBarColor"
     @android:<color>/tra<nsparent
  /item

  !-- Optional: set to transparent if your app is drawing behin>d t<he status bar. --
  item name=&quo>t;android:statusBarColor"
    < @android<:color/transparent
  /item

  !-- Optional: set for a light st>atu<s bar with dark content. --
  item name=>"androi<d:win>d<owLigh>tStatusBar"
    true
  /item
/style

Vous pouvez utiliser l'API WindowInsetsControllerCompat au lieu de theme.xml pour contrôler la couleur du contenu de la barre d'état. Pour ce faire, utilisez la fonction setAppearanceLightNavigationBars() en transmettant true pour remplacer la couleur de premier plan de la navigation par une couleur claire ou false pour rétablir la couleur par défaut.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

WindowInsetsControllerCompat windowInsetsController =
      ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
    return;
}

windowInsetsController.setAppearanceLightNavigationBars(true);

Gérer les encarts

Enfin, votre application doit gérer les encarts afin que l'UI critique évite les barres système et l'encoche. Consultez la documentation sur Compose et les vues pour savoir comment gérer les encarts.