Fragmenten

Een Fragment vertegenwoordigt een bruikbaar deel van de UI van uw app. Een fragment definieert en beheert zijn eigen lay-out, heeft zijn eigen levenscyclus, en kan zijn eigen input events afhandelen. Fragmenten kunnen niet op zichzelf staan-ze moeten worden gehost door een activiteit of een ander fragment. De view hiërarchie van het fragment wordt onderdeel van, of wordt gekoppeld aan, de host view hiërarchie.

Modulariteit

Fragmenten introduceren modulariteit en herbruikbaarheid in de UI van je activiteit door je in staat te stellen de UI op te delen in discrete brokken. Activiteiten zijn een ideale plaats om globale elementen in de gebruikersinterface van je app te plaatsen, zoals een navigatiebalk. Omgekeerd zijn fragmenten beter geschikt om de UI van een enkel scherm of een deel van een scherm te definiëren en te beheren.

Bedenk een app die reageert op verschillende schermgroottes. Op grotere schermen zou de app een statische navigatielade en een lijst in een raster-layout moeten tonen. Op kleinere schermen moet de app een navigatiebalk onderaan en een lijst in een lineaire lay-out weergeven. Het beheer van al deze variaties in de activiteit kan onhandelbaar zijn. Het scheiden van de navigatie-elementen en de inhoud kan dit proces beter beheersbaar maken. De activiteit is dan verantwoordelijk voor het weergeven van de juiste navigatie UI, terwijl het fragment de lijst met de juiste lay-out weergeeft.

Figuur 1. Twee versies van hetzelfde scherm op verschillende schermformaten. Links bevat een groot scherm een navigatielade die wordt aangestuurd door de activiteit en een rasterlijst die wordt aangestuurd door het fragment. Rechts bevat een klein scherm een onderste navigatiebalk die door de activiteit wordt bestuurd en een lineaire lijst die door het fragment wordt bestuurd.

Door uw UI in fragmenten te verdelen, is het eenvoudiger om het uiterlijk van uw activiteit tijdens runtime aan te passen. Terwijl uw activiteit zich in de STARTEDlifecycle-status of hoger bevindt, kunnen fragmenten worden toegevoegd, vervangen of verwijderd. Je kunt deze veranderingen bijhouden in een back stack die wordt beheerd door de activiteit, zodat de veranderingen kunnen worden teruggedraaid.

Je kunt meerdere instanties van dezelfde fragmentklasse gebruiken binnen dezelfde activiteit, in meerdere activiteiten, of zelfs als een child van een ander fragment. Met dit in gedachten, zou je een fragment alleen moeten voorzien van de logica die nodig is om zijn eigen UI te beheren. Voorkom dat een fragment afhankelijk is van of gemanipuleerd wordt door een ander fragment.

Voor meer documentatie en bronnen met betrekking tot fragmenten, zie het volgende.

Aan de slag

  • Een fragment maken

Volgende onderwerpen

  • Fragmentmanager
  • Fragmenttransacties
  • Overgangen tussen fragmenten animeren
  • Fragmentlevenscyclus
  • Opslaan staat met fragmenten
  • Communiceren tussen fragmenten en activiteiten
  • Werken met de app-balk
  • Dialogen weergeven met DialogFragment
  • Test je fragmenten

Video’s

  • Single Activity: Waarom, wanneer en hoe (Android Dev Summit ’18)
  • Fragmenten: Verleden, heden en toekomst (Android Dev Summit ’19)

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *