Split Screen — este modul de ecran divizat care permite rularea simultană a două aplicații una lângă alta, împărțind spațiul disponibil. Utilizatorul poate trage separatorul între ferestre, poate modifica proporțiile și poate comuta rapid aplicațiile în fiecare jumătate. Potrivit Android Developers (2025), Split Screen face parte din programul obligatoriu de compatibilitate pentru toate dispozitivele cu lățimea ecranului de la 600 dp și este suportat atât pe Android, cât și pe iPadOS.
Principalele
Split Screen — este un mod de multitasking în care ecranul este împărțit în două zone funcționale, fiecare conținând o aplicație separată. Spre deosebire de Slide Over sau PiP, unde o fereastră plutește deasupra celeilalte, Split Screen oferă ambelor aplicații un statut egal — fiecare primește jumătatea sa de ecran.
Modul este disponibil pe Android (începând cu 7.0 Nougat), iPadOS (începând cu iOS 9), Windows (Snap Assist) și în unele medii desktop Linux. În dezvoltarea mobilă, Split Screen este considerat un scenariu obligatoriu pentru tablete și dispozitive pliabile, unde multitaskingul este avantajul cheie al platformei.
Utilizatorul activează Split Screen prin apăsarea lungă a pictogramei aplicației în Overview (Android) sau prin glisare din Dock (iPad). După activare, ecranul se împarte, iar utilizatorul selectează a doua aplicație din lista recentelor sau din Dock.
În Android, Split Screen este gestionat prin Window Manager. Când utilizatorul activează modul, sistemul creează două StackView — câte unul pentru fiecare Activity. Separatorul dintre ferestre este desenat de sistem, grosimea sa minimă fiind de 1 dp, dar poate fi mărită pe dispozitivele cu Gesture Navigation.
Fiecare aplicație primește o notificare despre modificarea dimensiunii prin onConfigurationChanged. Dacă Activity nu gestionează acest eveniment — este distrusă și creată din nou. Pentru videoclipuri și jocuri, acest lucru este critic: recrearea Activity resetează poziția de redare sau starea jocului.
Proporțiile ferestrelor pot fi modificate prin glisarea separatorului. Android suportă trei stări: 50/50, 70/30 și 30/70. Utilizatorul poate, de asemenea, să schimbe aplicațiile între ele — acest lucru provoacă repornirea Activity, dacă configChanges nu este gestionat.
Split View — este implementarea Split Screen în iPadOS. Spre deosebire de Android, unde împărțirea ecranului merge întotdeauna din centru, iPadOS oferă utilizatorului trei poziții ale separatorului: 50/50, 25/75 și 75/25. Modul se activează prin Dock sau App Exposé.
În iPadOS, aplicația în Split View poate fi minimizată în Slide Over — o fereastră plutitoare. Aceasta este o caracteristică unică Apple: utilizatorul poate transforma una dintre ferestre din Split View în Slide Over și înapoi fără pierderea datelor. Dezvoltatorul trebuie să suporte toate cele trei moduri: full screen, Split View și Slide Over.
Pentru a suporta Split View în iOS, aplicația trebuie să implementeze layout-uri adaptive prin Size Classes și scenă (UIScene). Din iOS 13, Apple cere ca aplicația să gestioneze corect modul multi-fereastră — altfel, sistemul poate reporni forțat Activity pe iPad.
La intrarea și ieșirea din Split Screen, au loc modificări de configurare: se schimbă lățimea, înălțimea și raportul de aspect al ferestrei. Comportamentul standard al Android — recrearea Activity (onDestroy + onCreate). Pentru a evita acest lucru, specificați android:configChanges în manifest.
La recrearea Activity, se pierde starea View și ViewModel. Utilizați SavedStateHandle pentru salvarea stării UI sau ViewModel cu domeniul de aplicare limitat la Application. Alternativă — onRetainNonConfigurationInstance() pentru obiecte complexe.
@Override
fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
val isSplitScreen = isInMultiWindowMode()
if (isSplitScreen) {
adjustLayoutForSplitScreen()
}
}
În iPadOS, mecanism analog — traitCollectionDidChange sau viewWillTransitionToSize. Dezvoltatorul primește noua dimensiune a containerului și trebuie să reconstruiască layout-ul conform Size Class.
Pe Android, suportul Split Screen începe cu setarea flagului resizeableActivity în manifest. După aceasta, Activity se poate micșora până la o lățime minimă de 220 dp. Dacă aplicația nu suportă un ecran atât de îngust — specificați android:minWidth în manifest.
Pentru iPad, dezvoltatorului îi este suficient să suporte Size Classes și să folosească Auto Layout sau SwiftUI. SwiftUI adaptează automat interfața la trecerea în Split View — de exemplu, NavigationSplitView comută între modurile stacked și side-by-side.
Se recomandă testarea Split Screen pe dispozitive reale sau în emulator cu setarea multi-resizable window. Android Emulator permite rularea unui număr arbitrar de ferestre prin ADB și verificarea comportamentului aplicației în diferite proporții.
| Platformă | Mecanism de adaptare | Lățime minimă |
|---|---|---|
| Android | resizeableActivity + configChanges | 220 dp |
| iPadOS | Size Classes + UIScene | 320 pt (primary) |
Prima eroare — ignorarea salvării stării. În Split Screen, Activity poate fi recreată în orice moment fără intervenția utilizatorului. Dacă datele sunt stocate doar în variabile locale — se vor pierde. Utilizați ViewModel pentru datele ecranului și SavedStateHandle pentru stări critice.
A doua eroare — ascunderea conținutului la micșorarea ferestrei. Unii dezvoltatori ascund elementele când lățimea devine mai mică decât un anumit prag. Abordarea corectă — reconstruirea layout-ului: pe ecran îngust afișați doar cele mai importante elemente, nu ascundeți totul. Window Size Class oferă breakpoint-uri gata făcute pentru această logică.
A treia eroare — negestionarea onWindowFocusChanged. În Split Screen, focalizarea poate comuta între ferestre fără a închide aplicația. Ignorarea acestui eveniment duce la oprirea playerului video când utilizatorul doar s-a uitat la fereastra vecină.
Întrebări frecvente
Utilizați Intent cu FLAG_ACTIVITY_LAUNCH_ADJACENT. Dacă dispozitivul se află în Split Screen, aplicația se va deschide în fereastra alăturată. Dacă dispozitivul este în modul ecran complet — flagul este ignorat.
Da. Activity rămâne vizibilă, dar pierde focalizarea — se apelează onPause, dar nu onStop. La ieșirea din Split Screen se apelează onMultiWindowModeChanged, apoi onResume.
Utilizați WindowManager.getCurrentWindowMetrics() sau Jetpack WindowManager. Nu utilizați Display.getSize() — acesta returnează ecranul complet, nu fereastra curentă a aplicației.
Da. Pe dispozitivul desfăcut, Split Screen este adesea modul implicit. Samsung Galaxy Z Fold în modul peisaj oferă Split Screen cu trei aplicații simultan.
Setați android:resizeableActivity="false" pentru acel Activity. Pentru API 24+, flagul interzice Split Screen. Pe Android 12L+ utilizați android:minWidth și android:minHeight.
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și