Split Screen — egy osztott képernyős mód, amely lehetővé teszi két alkalmazás egyidejű futtatását egymás mellett, megosztva a rendelkezésre álló helyet. A felhasználó húzhatja az elválasztót az ablakok között, módosíthatja az arányokat, és gyorsan válthat az alkalmazások között az egyes felekben. A Android Developers (2025) szerint a Split Screen a kötelező kompatibilitási program része minden 600 dp-től kezdődő képernyőszélességű eszköz számára, és támogatott Androidon és iPadOS-en is.
Főbb pontok
Split Screen — egy többfeladatos mód, amelyben a képernyő két funkcionális területre oszlik, amelyek mindegyike egy külön alkalmazást tartalmaz. Ellentétben a Slide Over vagy PiP móddal, ahol az egyik ablak a másik fölött lebeg, a Split Screen egyenlő státuszt ad mindkét alkalmazásnak — mindegyik megkapja a saját felét a képernyőnek.
A mód elérhető Androidon (7.0 Nougattól), iPadOS-ben (iOS 9-től), Windows-on (Snap Assist) és néhány Linux asztali környezetben. A mobilfejlesztésben a Split Screen kötelező forgatókönyvnek számít a táblagépek és hajlítható eszközök esetében, ahol a többfeladatos működés a platform kulcsfontosságú előnye.
A felhasználó a Split Screen-t az alkalmazás ikonjának hosszú megnyomásával aktiválja az Overview-ban (Android) vagy a Dock-ból húzással (iPad). Aktiválás után a képernyő megosztásra kerül, és a felhasználó kiválasztja a második alkalmazást a legutóbbiak listájából vagy a Dock-ból.
Androidon a Split Screen a Window Manageren keresztül működik. Amikor a felhasználó aktiválja a módot, a rendszer két StackView-t hoz létre — egyet-egyet minden Activity-hez. Az ablakok közötti elválasztót a rendszer rajzolja, minimális vastagsága 1 dp, de növelhető a Gesture Navigationnal rendelkező eszközökön.
Minden alkalmazás értesítést kap a méretváltozásról a onConfigurationChanged segítségével. Ha az Activity nem kezeli ezt az eseményt — megsemmisül és újjáépül. Videók és játékok esetében ez kritikus: az Activity újjáépítése visszaállítja a lejátszási pozíciót vagy a játék állapotát.
Az ablakok arányai az elválasztó húzásával módosíthatók. Az Android három állapotot támogat: 50/50, 70/30 és 30/70. A felhasználó az alkalmazásokat is felcserélheti — ez az Activity újraindítását okozza, ha a configChanges nincs kezelve.
Split View — a Split Screen megvalósítása iPadOS-ben. Ellentétben Androiddal, ahol a képernyőosztás mindig a középpontból indul, az iPadOS három elválasztó pozíciót kínál a felhasználónak: 50/50, 25/75 és 75/25. A mód a Dock-on vagy az App Exposén keresztül aktiválható.
iPadOS-ben a Split View-ban lévő alkalmazás Slide Over-ra — egy lebegő ablakra — minimalizálható. Ez egy egyedi Apple-funkció: a felhasználó az egyik ablakot Split View-ból Slide Over-ba alakíthatja és vissza, adatvesztés nélkül. A fejlesztőnek mindhárom módot támogatnia kell: full screen, Split View és Slide Over.
A Split View iOS-ben való támogatásához az alkalmazásnak adaptív layoutokat kell megvalósítania Size Classes és scene (UIScene) segítségével. Az iOS 13-tól kezdve az Apple megköveteli, hogy az alkalmazás helyesen kezelje a többablakos módot — ellenkező esetben a rendszer kényszerítheti az Activity újraindítását iPaden.
A Split Screen-be való belépéskor és kilépéskor konfigurációs változások történnek: megváltozik az ablak szélessége, magassága és képaránya. Az Android alapértelmezett viselkedése — az Activity újjáépítése (onDestroy + onCreate). Ennek elkerüléséhez adja meg a android:configChanges elemet a manifestben.
Az Activity újjáépítésekor elveszíti a View és ViewModel állapotát. Használja a SavedStateHandle elemet az UI állapot mentéséhez vagy ViewModel-t Application hatókörrel. Alternatíva — onRetainNonConfigurationInstance() összetett objektumokhoz.
@Override
fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
val isSplitScreen = isInMultiWindowMode()
if (isSplitScreen) {
adjustLayoutForSplitScreen()
}
}
Az iPadOS-ben hasonló mechanizmus — traitCollectionDidChange vagy viewWillTransitionToSize. A fejlesztő megkapja a tároló új méretét, és át kell építenie a layoutot a Size Class szerint.
Androidon a Split Screen támogatása a resizeableActivity jelző beállításával kezdődik a manifestben. Ezt követően az Activity 220 dp minimális szélességre csökkenhet. Ha az alkalmazás nem támogat ilyen keskeny képernyőt — adja meg az android:minWidth elemet a manifestben.
iPadhez a fejlesztőnek elegendő a Size Classes támogatása és az Auto Layout vagy SwiftUI használata. A SwiftUI automatikusan adaptálja a felületet a Split View-ba való átlépéskor — például a NavigationSplitView a stacked és side-by-side módok között vált.
Javasolt a Split Screen tesztelése valós eszközökön vagy emulátorban a multi-resizable window beállítással. Az Android Emulator lehetővé teszi tetszőleges számú ablak indítását ADB segítségével és az alkalmazás viselkedésének ellenőrzését különböző arányokban.
| Platform | Adaptációs mechanizmus | Minimális szélesség |
|---|---|---|
| Android | resizeableActivity + configChanges | 220 dp |
| iPadOS | Size Classes + UIScene | 320 pt (primary) |
Első hiba — az állapotmentés figyelmen kívül hagyása. Split Screen-ben az Activity bármikor újjáépíthető a felhasználó közreműködése nélkül. Ha az adatok csak helyi változókban tárolódnak — elvesznek. Használjon ViewModelt a képernyőadatokhoz és SavedStateHandle-t a kritikus állapotokhoz.
Második hiba — a tartalom elrejtése az ablak csökkentésekor. Egyes fejlesztők elrejtik az elemeket, amikor a szélesség egy bizonyos küszöb alá csökken. A helyes megközelítés — a layout átépítése: keskeny képernyőn csak a legfontosabbakat mutassa, ne rejtsen el mindent. A Window Size Class kész töréspontokat ad ehhez a logikához.
Harmadik hiba — a onWindowFocusChanged kezelésének elmulasztása. Split Screen-ben a fókusz az ablakok között válthat az alkalmazás bezárása nélkül. Ennek az eseménynek a figyelmen kívül hagyása a videolejátszó leállásához vezet, amikor a felhasználó csak a szomszédos ablakra nézett.
Gyakran Ismételt Kérdések
Használjon Intent-et FLAG_ACTIVITY_LAUNCH_ADJACENT jelzővel. Ha az eszköz Split Screen módban van, az alkalmazás a szomszédos ablakban nyílik meg. Ha az eszköz teljes képernyős módban van — a jelző figyelmen kívül marad.
Igen. Az Activity látható marad, de elveszíti a fókuszt — onPause hívódik meg, de az onStop nem. A Split Screen-ből való kilépéskor az onMultiWindowModeChanged, majd az onResume hívódik meg.
Használja a WindowManager.getCurrentWindowMetrics() vagy a Jetpack WindowManager elemet. Ne használja a Display.getSize() metódust — a teljes képernyőt adja vissza, nem az alkalmazás aktuális ablakát.
Igen. A kihajtott eszközön a Split Screen gyakran alapértelmezett mód. Samsung Galaxy Z Fold fekvő módban három alkalmazással kínál Split Screen-t egyszerre.
Állítsa be a android:resizeableActivity="false" értéket ahhoz az Activity-hez. API 24+ esetén a jelző tiltja a Split Screen-t. Android 12L+ esetén használja az android:minWidth és android:minHeight elemeket.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is