Multi-Window — is een reeks multitaskingmodi in Android waarmee u meerdere apps tegelijk op het scherm kunt uitvoeren. Het systeem omvat drie modi: Split Screen voor het splitsen van het scherm in twee delen, Picture-in-Picture voor video in een minivenster en Freeform voor vensters van willekeurige grootte op grote schermen. Volgens Android Developers (2025) is ondersteuning voor Multi-Window verplicht voor apparaten met een schermbreedte van 600 dp of meer, en elke ontwikkelaar moet de app aanpassen aan mogelijke wijzigingen in venstergrootte.
Belangrijkste punten
Multi-Window — is een Android-functie geïntroduceerd in versie 7.0 Nougat (API 24), waarmee twee of meer apps tegelijk op het scherm kunnen worden uitgevoerd. De modus was Google's antwoord op de groeiende populariteit van tablets en apparaten met grote schermen, waar de modus voor één taak de productiviteit beperkt.
Vóór Android 7.0 nam elke app het volledige scherm in beslag — bij het schakelen tussen apps werd de vorige geminimaliseerd. Multi-Window veranderde dit model: nu kan een app een deel van het scherm innemen terwijl deze actief blijft. Voor de ontwikkelaar betekent dit dat onConfigurationChanged en het afhandelen van groottewijzigingen verplicht worden.
In Android 12L (2022) maakte Google Multi-Window de standaardmodus voor apparaten met een groot scherm — alle apps op tablets worden gestart in een modus die meerdere vensters toestaat. De uitzondering zijn alleen apps met een expliciet verbod in het manifest.
Split Screen — de meest voorkomende modus. Het scherm wordt horizontaal of verticaal in twee delen gesplitst, de gebruiker versleept de scheidingslijn. Beschikbaar op telefoons en tablets. Gestart via Overview (Recents) — door het app-pictogram naar de boven- of onderrand te slepen.
Picture-in-Picture (PiP) — modus voor video- en navigatie-apps. Inhoud wordt weergegeven in een zwevend minivenster (ongeveer 15–25% van het scherm) dat verplaatst kan worden. Beschikbaar op Android 8.0+. Voor activering wordt enterPictureInPictureMode() in Activity gebruikt.
Freeform — modus voor vensters van willekeurige grootte, vergelijkbaar met desktopvensterbeheerders. Beschikbaar op Android TV en sommige apparaten met groot scherm van fabrikanten (Samsung DeX). Apps worden gestart in vensters met een titel en bedieningsknoppen.
Wanneer de gebruiker Multi-Window activeert, maakt Android een nieuw Activity-exemplaar voor elke app en verdeelt de beschikbare schermruimte. Activiteiten worden in afzonderlijke taken (Task) geplaatst, maar gebruiken dezelfde StackView met een scheidingslijn ertussen.
Het systeem stelt elke Activity op de hoogte van groottewijzigingen via onConfigurationChanged(). Als de Activity deze gebeurtenis niet afhandelt, wordt deze opnieuw gemaakt (recreate). Voor Split Screen kan de vensterbreedte afnemen tot 220 dp — de minimale breedte die door het platform wordt ondersteund.
Android stelt de app in staat een minimale breedte aan te geven via android:minWidth en android:minHeight in het manifest. Als de beschikbare ruimte kleiner is dan de opgegeven waarden, gaat de Activity in pauze.
Voor ondersteuning van Multi-Window moet u de vlag android:resizeableActivity="true" in het manifest instellen. Dit betekent dat de app van grootte kan veranderen bij wijziging van het venster. Standaard worden op Android 12L+ alle apps als resizeable beschouwd — de vlag wordt genegeerd.
Bij wijziging van de venstergrootte kan de Activity opnieuw worden gemaakt (standaard) of de gebeurtenis afhandelen in onConfigurationChanged, als in het manifest configChanges="screenSize|smallestScreenSize" is opgegeven. Het wordt aanbevolen configChanges op te geven voor belangrijke Activity's om verlies van status te voorkomen.
<activity
android:name=".MainActivity"
android:resizeableActivity="true"
android:configChanges="screenSize|smallestScreenSize|orientation" />
Voor apps die geen groottewijzigingen ondersteunen, toont Android een dialoogvenster met een waarschuwing. In dit geval kan het systeem bij overschakeling naar de modus met meerdere vensters de Activity beëindigen en een snackbar tonen met het voorstel om opnieuw te starten.
Multi-Window wijzigt de standaard levenscyclus van Activity. Wanneer een andere app actief wordt in een aangrenzend venster, ontvangt de huidige Activity de aanroep onPause(), maar niet onStop() — deze blijft zichtbaar, zij het niet in focus. Dit is belangrijk: de videospeler moet de weergave voortzetten bij onPause, niet bij onStop.
De ontwikkelaar moet onderscheid maken tussen toestanden: onPause + isInMultiWindowMode() = true betekent alleen verlies van focus, niet het verlaten van het scherm. Voor video en animaties is dit een signaal om de weergave niet te stoppen, maar alleen de markering van bedieningselementen te verwijderen.
Bij het verlaten van Multi-Window wordt onMultiWindowModeChanged() aangeroepen vóór onResume(). Dit biedt de mogelijkheid om de interface aan te passen voor de volledige-schermmodus voordat de gebruiker begint te interacteren.
Eerste regel — bewaar de status. In de modus met meerdere vensters kan Activity op elk moment opnieuw worden gemaakt. Gebruik SavedStateHandle in ViewModel of onSaveInstanceState voor alle gegevens die behouden moeten blijven tussen configuratiewijzigingen.
Tweede — testen op een minimale breedte van 220 dp. Deze waarde wordt beschouwd als het smalste venster in Split Screen. De interface moet leesbaar en functioneel blijven. Als sommige elementen buiten de grenzen vallen, gebruik dan Window Size Class om te schakelen tussen lay-outs.
Derde — schakel functionaliteit uit die niet werkt in Multi-Window. Bijvoorbeeld Camera kan niet beschikbaar zijn als het scherm te klein is. Controleer isInMultiWindowMode() voordat u de camera of andere volledige-schermfuncties start.
Veelgestelde vragen
Stel android:resizeableActivity="false" in het manifest in. Op Android 12L+ wordt de vlag genegeerd voor apparaten met een groot scherm, dus gebruik android:maxAspectRatio voor volledige uitschakeling.
Roep isInMultiWindowMode() aan vanuit Activity. De methode retourneert true als de app werkt in Split Screen, PiP of Freeform. U kunt zich ook abonneren op onMultiWindowModeChanged().
Op Android TV is alleen de Picture-in-Picture-modus beschikbaar. Split Screen en Freeform worden niet ondersteund — tv's gebruiken één hoofdscherm met een PiP-venster in de hoek.
De foreground-service blijft werken ongeacht de modus. Maar als de app overschakelt naar PiP, kan het systeem de uitvoering tijdelijk onderbreken om bronnen te sparen.
Android ondersteunt Drag and Drop tussen vensters in Multi-Window via ClipData en View.OnDragListener. Gegevens worden overgedragen via ContentProvider of Intent met FLAG_GRANT_READ_URI_PERMISSION.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook