Split Screen est un mode d'écran divisé qui permet d'exécuter deux applications simultanément côte à côte, en divisant l'espace disponible. L'utilisateur peut faire glisser le séparateur entre les fenêtres, modifier les proportions et basculer rapidement entre les applications dans chaque moitié. Selon Android Developers (2025), Split Screen fait partie du programme de compatibilité obligatoire pour tous les appareils dont la largeur d'écran est de 600 dp ou plus, et est pris en charge à la fois sur Android et sur iPadOS.
Points clés
Split Screen est un mode multitâche où l'écran est divisé en deux zones fonctionnelles, chacune contenant une application distincte. Contrairement à Slide Over ou PiP, où une fenêtre flotte au-dessus d'une autre, Split Screen donne aux deux applications un statut égal — chacune obtient sa propre moitié de l'écran.
Le mode est disponible sur Android (depuis 7.0 Nougat), iPadOS (depuis iOS 9), Windows (Snap Assist) et certains environnements de bureau Linux. Dans le développement mobile, Split Screen est considéré comme un scénario obligatoire pour les tablettes et les appareils pliables, où le multitâche est un avantage clé de la plateforme.
L'utilisateur active Split Screen en appuyant longuement sur l'icône de l'application dans Overview (Android) ou en faisant glisser depuis le Dock (iPad). Après activation, l'écran se divise et l'utilisateur sélectionne la deuxième application dans la liste des récentes ou depuis le Dock.
Sur Android, Split Screen est géré via Window Manager. Lorsque l'utilisateur active le mode, le système crée deux StackViews — une pour chaque Activity. Le séparateur entre les fenêtres est rendu par le système, avec une épaisseur minimale de 1 dp, qui peut être augmentée sur les appareils avec Gesture Navigation.
Chaque application reçoit une notification de changement de taille via onConfigurationChanged. Si l'Activity ne gère pas cet événement, elle est détruite et recréée. Pour les vidéos et les jeux, c'est critique : recréer l'Activity réinitialise la position de lecture ou l'état du jeu.
Les proportions des fenêtres peuvent être modifiées en faisant glisser le séparateur. Android prend en charge trois états : 50/50, 70/30 et 30/70. L'utilisateur peut également échanger les applications, ce qui déclenche un redémarrage de l'Activity si configChanges n'est pas géré.
Split View est l'implémentation de Split Screen dans iPadOS. Contrairement à Android, où la division de l'écran part toujours du centre, iPadOS offre à l'utilisateur trois positions de séparateur : 50/50, 25/75 et 75/25. Le mode est activé via le Dock ou App Exposé.
Dans iPadOS, une application en Split View peut être réduite en Slide Over — une fenêtre flottante. C'est une fonctionnalité unique d'Apple : l'utilisateur peut transformer l'une des fenêtres de Split View en Slide Over et inversement sans perte de données. Le développeur doit prendre en charge les trois modes : plein écran, Split View et Slide Over.
Pour prendre en charge Split View dans iOS, l'application doit implémenter des mises en page adaptatives via Size Classes et la scène (UIScene). Depuis iOS 13, Apple exige que l'application gère correctement le mode multi-fenêtres — sinon le système peut redémarrer de force l'Activity sur iPad.
En entrant et en sortant du Split Screen, des changements de configuration se produisent : la largeur, la hauteur et le rapport d'aspect de la fenêtre changent. Le comportement standard d'Android est de recréer l'Activity (onDestroy + onCreate). Pour éviter cela, spécifiez android:configChanges dans le manifeste.
Lors de la recréation, l'Activity perd l'état de View et ViewModel. Utilisez SavedStateHandle pour sauvegarder l'état de l'interface utilisateur ou un ViewModel avec une portée d'Application. Une alternative est onRetainNonConfigurationInstance() pour les objets complexes.
@Override
fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
val isSplitScreen = isInMultiWindowMode()
if (isSplitScreen) {
adjustLayoutForSplitScreen()
}
}
Dans iPadOS, le mécanisme équivalent est traitCollectionDidChange ou viewWillTransitionToSize. Le développeur reçoit la nouvelle taille du conteneur et doit reconstruire la mise en page en fonction de la Size Class.
Sur Android, la prise en charge de Split Screen commence par la définition du flag resizeableActivity dans le manifeste. Après cela, l'Activity peut se réduire à une largeur minimale de 220 dp. Si l'application ne prend pas en charge un écran aussi étroit, spécifiez android:minWidth dans le manifeste.
Pour iPad, le développeur n'a besoin que de prendre en charge Size Classes et d'utiliser Auto Layout ou SwiftUI. SwiftUI adapte automatiquement l'interface lors du passage en Split View — par exemple, NavigationSplitView alterne entre les modes empilé et côte à côte.
Il est recommandé de tester Split Screen sur des appareils réels ou dans un émulateur avec paramètres de fenêtre multi-redimensionnable. L'émulateur Android permet de lancer un nombre quelconque de fenêtres via ADB et de vérifier le comportement de l'application dans différentes proportions.
| Plateforme | Mécanisme d'adaptation | Largeur minimale |
|---|---|---|
| Android | resizeableActivity + configChanges | 220 dp |
| iPadOS | Size Classes + UIScene | 320 pt (primaire) |
La première erreur est d'ignorer la préservation de l'état. Dans Split Screen, l'Activity peut être recréée à tout moment sans action de l'utilisateur. Si les données sont stockées uniquement dans des variables locales, elles seront perdues. Utilisez ViewModel pour les données d'écran et SavedStateHandle pour les états critiques.
La deuxième erreur est de cacher le contenu lors du rétrécissement de la fenêtre. Certains développeurs cachent des éléments lorsque la largeur descend en dessous d'un certain seuil. La bonne approche est de reconstruire la mise en page : sur un écran étroit, affichez uniquement le plus important au lieu de tout cacher. Window Size Class fournit des points d'arrêt prêts à l'emploi pour cette logique.
La troisième erreur est de ne pas gérer onWindowFocusChanged. Dans Split Screen, le focus peut basculer entre les fenêtres sans fermer l'application. Ignorer cet événement provoque l'arrêt du lecteur vidéo lorsque l'utilisateur regarde simplement la fenêtre adjacente.
Questions fréquentes
Utilisez un Intent avec FLAG_ACTIVITY_LAUNCH_ADJACENT. Si l'appareil est en Split Screen, l'application s'ouvrira dans la fenêtre adjacente. Si l'appareil est en mode plein écran, le flag est ignoré.
Oui. L'Activity reste visible mais perd le focus — onPause est appelé, mais pas onStop. En quittant Split Screen, onMultiWindowModeChanged est appelé, suivi de onResume.
Utilisez WindowManager.getCurrentWindowMetrics() ou Jetpack WindowManager. N'utilisez pas Display.getSize() — il retourne l'écran entier, pas la fenêtre actuelle de l'application.
Oui. Sur un appareil déplié, Split Screen est souvent le mode par défaut. Le Samsung Galaxy Z Fold en mode paysage offre Split Screen avec trois applications simultanément.
Définissez android:resizeableActivity="false" pour cette Activity. Pour API 24+, ce flag désactive Split Screen. Sur Android 12L+, utilisez android:minWidth et android:minHeight.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.
Lisez aussi