SafeAreaView — wat is het, layout met Safe Area in React Native

Auteur: IT Sectr Gepubliceerd: 2026-07-06 Leestijd: 10 min

SafeAreaView — React Native component voor het ontwerpen met het veilige gebied van het scherm op apparaten met uitsparingen en afrondingen. Op iPhone met Notch en Dynamic Island kan inhoud worden bedekt door de camera en indicatoren. SafeAreaView voegt automatisch marges toe om te voorkomen dat de interface wordt afgesneden door systeemelementen. Lees meer over Safe Area in de officiële Meta documentatie.

Belangrijkste

  • SafeAreaView — component die automatisch marges toevoegt voor het veilige schermgebied van iOS en Android
  • Notch en Dynamic Island vereisen bovenste marges die SafeAreaView automatisch berekent
  • Android — component houdt rekening met de statusbalk en systeemnavigatieknoppen
  • Alternatieven: useSafeAreaInsets van react-native-safe-area-context voor flexibele controle over marges
  • Edge-to-edge schermen vereisen verplicht gebruik van SafeAreaView voor een correcte lay-out

Wat is SafeAreaView?

SafeAreaView — React Native component die automatisch interne marges (padding) toevoegt zodat inhoud niet wordt bedekt door systeeminterfce-elementen: statusbalk, Notch, Dynamic Island en het systeemnavigatiepaneel. De component verscheen in React Native 0.50 voor iOS en werd later uitgebreid voor Android.

Op iOS gebruikt SafeAreaView native UIView.safeAreaInsets, geïntroduceerd in iOS 11 (2017). Op Android houdt de component rekening met WindowInsets — systeemmarges beschikbaar vanaf Android 5.0 (API 21). Volgens Apple gegevens (2026) heeft 92% van de actieve iPhones een scherm met uitsparing of Dynamic Island.

Waarom Safe Area nodig is

Het concept Safe Area — onderdeel van de Apple HIG (Human Interface Guidelines) aanbevelingen. Vóór iPhone X (2017) was de volledige schermruimte veilig. Met de komst van Notch definieerde Apple gebieden waar inhoud niet mag worden geplaatst: camera-uitsparing, tijd- en batterij-indicator, home-indicator. Android voerde een vergelijkbaar concept in met de komst van schermen met uitsparing in 2018.

Hoe werkt Safe Area op iOS en Android

Op iOS leest SafeAreaView safeAreaInsets uit de native layout-guide. De bovenste marge omvat de hoogte van de statusbalk (meestal 44 of 50 punten voor iPhone met Notch). Onderste marge — 34 punten voor de Home Indicator. Android gebruikt WindowInsets — bovenste marge voor de statusbalk en onderste voor systeemnavigatie.

PlatformBovenste margeOnderste margeBron
iOS (Notch)44-50 pt34 ptsafeAreaInsets.top / .bottom
iOS (zonder Notch)20 pt0 ptsafeAreaInsets.top / .bottom
Android (met uitsparing)24-48 dp24-48 dpWindowInsets.systemBarsInsets
Android (zonder uitsparing)24 dp0 dpWindowInsets.statusBarsInsets

Belangrijk: SafeAreaView past padding automatisch toe, maar alleen voor de root-container. Geneste componenten krijgen geen bescherming — elk scherm moet zijn eigen SafeAreaView hebben. Voor modale vensters en BottomSheet moet u marges apart in overweging nemen.

Notch, Dynamic Island en systeempaneel

Notch — hardware-uitsparing aan de bovenkant van het scherm met camera en sensoren. Verschenen in iPhone X (2017). Dynamic Island — software-hardware gebied van iPhone 14 Pro en nieuwer dat Notch vervangt door een interactief element. Beide vereisen een bovenste marge van 50-56 pt.

Op Android hebben uitsparingen verschillende vormen: traanvormig, gat in de hoek (punch-hole), strook onder de camera. SafeAreaView op Android gebruikt WindowInsets die rekening houden met de vorm van de uitsparing. Voor apps in liggende stand worden zijmarges toegevoegd zodat inhoud niet wordt bedekt door systeemelementen.

js
import React from 'react';
import { SafeAreaView, View, Text } from 'react-native';

const App = () => (
  <SafeAreaView style={{ flex: 1 }}>
    <View style={styles.content}>
      <Text>Content is safe from Notch and system bars</Text>
    </View>
  </SafeAreaView>
);

De Edge-to-edge benadering (Android 15+) adviseert om inhoud onder systeempanelen te tekenen, maar met inachtneming van marges voor interactieve elementen. SafeAreaView helpt deze balans te bewaren: de achtergrond wordt onder de panelen getekend, knoppen en tekst in de veilige zone.

Gebruik en alternatieven van SafeAreaView

SafeAreaView — de eenvoudigste manier om inhoud te beschermen, maar niet altijd flexibel. De component past dezelfde marges toe aan alle zijden, wat onhandig is wanneer verschillende padding voor verschillende randen nodig is. Zo kunnen zijmarges overbodig zijn en de onderste alleen voor een knop.

Belangrijkste alternatieven: useSafeAreaInsets van react-native-safe-area-context (meest flexibele oplossing), StatusBar.currentHeight op Android, Platform.OS met handmatige controle van het apparaatmodel. Voor complexe gevallen gebruikt u een combinatie van SafeAreaView voor de algemene container en useSafeAreaInsets voor individuele elementen.

js
import { useSafeAreaInsets } from 'react-native-safe-area-context';

const CustomHeader = () => {
  const insets = useSafeAreaInsets();

  return (
    <View style={{ paddingTop: insets.top }}>
      <Header />
    </View>
  );
};

De bibliotheek react-native-safe-area-context — de facto standaard voor werken met Safe Area in React Native. Het wordt ondersteund door Expo, React Navigation en de meeste UI-kits. Het biedt zowel een hook als een Consumer-component voor functionele en class-gebaseerde benaderingen.

react-native-safe-area-context voor volledige controle

react-native-safe-area-context — bibliotheek die een flexibelere API biedt dan de ingebouwde SafeAreaView. Het belangrijkste voordeel — toegang tot afzonderlijke margewaarden (top, bottom, left, right) via de useSafeAreaInsets hook, waardoor ze selectief kunnen worden toegepast.

De bibliotheek biedt ook SafeAreaProvider — een component die verplicht is op het hoogste niveau van de applicatie. Het abonneert zich op veranderingen in systeemmarges bij schermrotatie of het openen van het toetsenbord. React Navigation gebruikt deze bibliotheek standaard.

SafeAreaView van react-native-safe-area-context verschilt van de ingebouwde: het werkt op meer apparaten en ondersteunt animatie van margeveranderingen. Voor een nieuw project wordt aanbevolen deze bibliotheek als afhankelijkheid te installeren en de SafeAreaView ervan te gebruiken in plaats van de ingebouwde.

Veelvoorkomende fouten bij het werken met SafeAreaView

SafeAreaView wordt vaak verkeerd gebruikt. De eerste fout — elke component in SafeAreaView wikkelen, wat dubbele marges creëert. Regel: één SafeAreaView per root View van het scherm. Geneste componenten erven marges via Flex-lay-out.

Tweede fout — het negeren van Android. Op Android gebruikt SafeAreaView WindowInsets, die kunnen verschillen op verschillende OS-versies. Op Android 15+ kunnen systeempanelen transparant zijn en veranderen marges. Test SafeAreaView altijd op echte apparaten, niet alleen in de emulator.

Derde fout — hard gecodeerde padding. Gebruik nooit Platform.OS === 'ios' ? 44 : 24 — margewaarden veranderen tussen modellen en OS-versies. Gebruik altijd systeem-API's: safeAreaInsets of useSafeAreaInsets. Dynamic Island op iPhone 15 Pro heeft andere marges dan Notch op iPhone X.

Veelgestelde vragen

Werkt SafeAreaView op alle apparaten?

SafeAreaView werkt op iOS 11+ en Android 5+. Op oudere apparaten zijn de marges nul, wat geen fouten veroorzaakt maar wel handmatige configuratie kan vereisen. Gebruik voor maximale compatibiliteit react-native-safe-area-context.

Hoe gebruik ik SafeAreaView alleen boven zonder onderste marge?

De ingebouwde SafeAreaView staat niet toe zijden te kiezen. Gebruik useSafeAreaInsets van react-native-safe-area-context: verkrijg insets.top en pas paddingTop toe. Of wikkel SafeAreaView in een View met negatieve margin om de onderste marge te compenseren.

Waarom voegt SafeAreaView geen marges toe op Android?

Op sommige Android-apparaten werkt SafeAreaView mogelijk niet vanwege fabrikantinstellingen. Controleer of u React Native 0.64+ gebruikt. Installeer voor gegarandeerde werking react-native-safe-area-context en wikkel de app in SafeAreaProvider.

Beïnvloedt schermoriëntatie SafeAreaView?

Ja, bij schermrotatie herberekent SafeAreaView de marges. In liggende stand op iPhone met Notch kunnen zijmarges 0 zijn, de bovenste blijft. De component react-native-safe-area-context abonneert zich automatisch op oriëntatieveranderingen.

Wat is het verschil tussen SafeAreaView en StatusBar?

SafeAreaView beheert de marges van inhoud ten opzichte van alle systeemelementen (statusbalk, Notch, home-indicator). StatusBar — component voor het beheren van kleur, stijl en zichtbaarheid van de statusbalk. Ze lossen verschillende taken op en kunnen samen worden gebruikt.

Samenvatting

  • SafeAreaView — React Native component voor het automatisch in acht nemen van systeemmarges op iOS (Notch, Dynamic Island) en Android (statusbalk, navigatie)
  • Werkingsprincipe — uitlezen van safeAreaInsets (iOS) of WindowInsets (Android) en toepassen als padding op de root-container
  • Notch en Dynamic Island vereisen bovenste marges van 44-56 pt, onderste marge van 34 pt voor de iPhone home-indicator
  • react-native-safe-area-context — flexibeler alternatief met de useSafeAreaInsets hook voor selectieve toepassing van marges
  • Veelvoorkomende fouten: dubbele marges, hard gecodeerde padding in plaats van systeem-API's, negeren van Android-specifiekheden
  • Edge-to-edge schermen vereisen SafeAreaView voor correcte plaatsing van interactieve elementen
  • Één SafeAreaView per scherm — geneste wikkels creëren dubbele marges die de lay-out verstoren

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.

Bespreek het project

Lees ook