Split Screen — је режим подељеног екрана који омогућава истовремено покретање две апликације једну поред друге, делећи доступни простор. Корисник може да превлачи разделник између прозора, мења пропорције и брзо пребацује апликације у свакој половини. Према Android Developers (2025), Split Screen је део обавезног програма компатибилности за све уређаје са ширином екрана од 600 dp и подржан је како на Android-у, тако и на iPadOS.
Главно
Split Screen — је режим мултитаскинга у коме се екран дели на две функционалне области, од којих свака садржи посебну апликацију. За разлику од Slide Over или PiP, где један прозор лебди изнад другог, Split Screen даје обема апликацијама једнак статус — свака добија своју половину екрана.
Режим је доступан на Android-у (од 7.0 Nougat), iPadOS (од iOS 9), Windows-у (Snap Assist) и неким десктоп окружењима Linux-а. У мобилном развоју, Split Screen се сматра обавезним сценаријом за таблете и склопиве уређаје, где је мултитаскинг кључна предност платформе.
Корисник активира Split Screen дугим притиском на икону апликације у Overview (Android) или превлачењем из Dock-а (iPad). Након активације, екран се дели, а корисник бира другу апликацију са листе недавних или из Dock-а.
У Android-у, Split Screen се управља путем Window Manager-а. Када корисник активира режим, систем креира два StackView — по један за сваки Activity. Разделник између прозора црта систем, његова минимална дебљина је 1 dp, али може бити повећана на уређајима са Gesture Navigation.
Свака апликација добија обавештење о промени величине путем onConfigurationChanged. Ако Activity не обрађује овај догађај — уништава се и поново креира. За видео записе и игре ово је критично: поновно креирање Activity ресетује позицију репродукције или стање игре.
Пропорције прозора могу се мењати превлачењем разделника. Android подржава три стања: 50/50, 70/30 и 30/70. Корисник такође може да замени апликације места — то изазива поновно покретање Activity, ако се не обрађује configChanges.
Split View — је имплементација Split Screen-а у iPadOS. За разлику од Android-а, где подела екрана увек иде од центра, iPadOS нуди кориснику три позиције разделника: 50/50, 25/75 и 75/25. Режим се активира преко Dock-а или App Exposé-а.
У iPadOS, апликација у Split View-у може бити смањена у Slide Over — плутајући прозор. Ово је јединствена Apple-ова карактеристика: корисник може да трансформише један од прозора из Split View-а у Slide Over и назад без губитка података. Програмер мора да подржава сва три режима: full screen, Split View и Slide Over.
Да би подржао Split View у iOS-у, апликација мора да имплементира адаптивне распореде кроз Size Classes и сцену (UIScene). Од iOS 13, Apple захтева да апликација правилно обрађује режим више прозора — у супротном систем може принудно да поново покрене Activity на iPad-у.
При уласку и изласку из Split Screen-а долази до промена конфигурације: мењају се ширина, висина и однос страница прозора. Стандардно понашање Android-а — поновно креирање Activity (onDestroy + onCreate). Да бисте то избегли, наведите android:configChanges у манифесту.
При поновном креирању Activity губи стање View-а и ViewModel-а. Користите SavedStateHandle за чување UI стања или ViewModel са ограниченим опсегом на Application. Алтернатива — onRetainNonConfigurationInstance() за сложене објекте.
@Override
fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
val isSplitScreen = isInMultiWindowMode()
if (isSplitScreen) {
adjustLayoutForSplitScreen()
}
}
У iPadOS, аналогни механизам — traitCollectionDidChange или viewWillTransitionToSize. Програмер добија нову величину контејнера и мора да преуреди распоред у складу са Size Class-ом.
На Android-у, подршка за Split Screen почиње постављањем заставице resizeableActivity у манифесту. Након тога, Activity се може смањити до минималне ширине од 220 dp. Ако апликација не подржава тако узан екран — наведите android:minWidth у манифесту.
За iPad, програмеру је довољно да подржава Size Classes и користи Auto Layout или SwiftUI. SwiftUI аутоматски прилагођава интерфејс при преласку у Split View — на пример, NavigationSplitView се пребацује између stacked и side-by-side режима.
Препоручује се тестирање Split Screen-а на стварним уређајима или у емулатору са подешавањем multi-resizable window. Android Emulator омогућава покретање произвољног броја прозора путем ADB-а и проверу понашања апликације у различитим пропорцијама.
| Платформа | Механизам адаптације | Минимална ширина |
|---|---|---|
| Android | resizeableActivity + configChanges | 220 dp |
| iPadOS | Size Classes + UIScene | 320 pt (primary) |
Прва грешка — игнорисање чувања стања. У Split Screen-у, Activity може бити поново креирана у било ком тренутку без учешћа корисника. Ако се подаци чувају само у локалним променљивим — изгубиће се. Користите ViewModel за податке на екрану и SavedStateHandle за критична стања.
Друга грешка — скривање садржаја при смањењу прозора. Неки програмери крију елементе када ширина постане мања од одређеног прага. Правилан приступ — преуређење распореда: на уском екрану приказујте само најважније ствари, а не скривајте све. Window Size Class даје готове breakpoint-е за ову логику.
Трећа грешка — необрађивање onWindowFocusChanged. У Split Screen-у, фокус може да се пребацује између прозора без затварања апликације. Игнорисање овог догађаја доводи до заустављања видео плејера када корисник само погледа у суседни прозор.
Често постављана питања
Користите Intent са FLAG_ACTIVITY_LAUNCH_ADJACENT. Ако се уређај налази у Split Screen-у, апликација ће се отворити у суседном прозору. Ако је уређај у режиму пуног екрана — заставица се игнорише.
Да. Activity остаје видљива, али губи фокус — позива се onPause, али не и onStop. При изласку из Split Screen-а позива се onMultiWindowModeChanged, затим onResume.
Користите WindowManager.getCurrentWindowMetrics() или Jetpack WindowManager. Немојте користити Display.getSize() — враћа цео екран, а не тренутни прозор апликације.
Да. На расклопљеном уређају, Split Screen је често подразумевани режим. Samsung Galaxy Z Fold у пејзажном режиму нуди Split Screen са три апликације истовремено.
Поставите android:resizeableActivity="false" за тај Activity. За API 24+, заставица забрањује Split Screen. На Android 12L+ користите android:minWidth и android:minHeight.
Закључак
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође