SafeAreaView — यह क्या है, React Native में Safe Area के साथ लेआउट

लेखक: IT Sectr प्रकाशित: 2026-07-06 पढ़ने का समय: 10 मिनट

SafeAreaView एक React Native घटक है जो नॉच और गोल कोनों वाले उपकरणों पर स्क्रीन सुरक्षित क्षेत्र के लिए लेआउट बनाता है। Notch और Dynamic Island वाले iPhones पर, कैमरा और संकेतक के कारण सामग्री अतिव्यापित हो सकती है। SafeAreaView स्वचालित रूप से पैडिंग जोड़ता है, जिससे इंटरफ़ेस सिस्टम तत्वों द्वारा काटा जाने से बचता है। Safe Area के बारे में और जानें के लिए Meta की आधिकारिक दस्तावेज़ीकरण देखें।

मुख्य बातें

  • SafeAreaView — एक घटक जो iOS और Android स्क्रीन पर सुरक्षित क्षेत्र के लिए स्वचालित रूप से पैडिंग जोड़ता है
  • Notch और Dynamic Island को ऊपरी पैडिंग की आवश्यकता होती है, जिसे SafeAreaView स्वचालित रूप से गणना करता है
  • Android — घटक स्टैटस बैर और सिस्टम नेविगेशन बटन को ध्यान में रखता है
  • विकल्प: लचीले पैडिंग नियंत्रण के लिए react-native-safe-area-context से useSafeAreaInsets
  • Edge-to-edge डिस्पले को सही लेआउट के लिए SafeAreaView का अनिवार्य उपयोग चाहिए

SafeAreaView क्या है?

SafeAreaView एक React Native घटक है जो स्वचालित रूप से आंतरिक पैडिंग जोड़ता है ताकि सामग्री सिस्टम इंटरफ़ेस तत्वों: स्टैटस बैर, Notch, Dynamic Island और सिस्टम नेविगेशन बैर से अतिव्यापित न हो। यह घटक React Native 0.50 में iOS के लिए दिखाई दिया और बाद में Android के लिए विस्तारित किया गया।

iOS पर, SafeAreaView नेटिव UIView.safeAreaInsets का उपयोग करता है, जो iOS 11 (2017) में पेश किया गया था। Android पर, घटक WindowInsets को ध्यान में रखता है — सिस्टम इंसेट्स जो Android 5.0 (API 21) से उपलब्ध हैं। Apple (2026) के अनुसार, 92% सक्रिय iPhones में नॉच या Dynamic Island वाला डिस्प्ले है।

Safe Area की आवश्यकता क्यों है

Safe Area अवधारणा Apple HIG (Human Interface Guidelines) सिफारिशों का हिस्सा है। iPhone X (2017) से पहले, पूरी स्क्रीन सुरक्षित थी। Notch के आगमन के साथ, Apple ने उन क्षेत्रों को परिभाषित किया जहाँ सामग्री नहीं रखी जानी चाहिए: कैमरा कटआउट, समय और बैटरी संकेतक, होम इंडिकेटर। Android ने 2018 में नॉचेड डिस्प्ले के आगमन के साथ एक समान अवधारणा लागू की।

iOS और Android पर Safe Area कैसे काम करता है

iOS पर, SafeAreaView नेटिव लेआउट-गाइड से safeAreaInsets पढ़ता है। ऊपरी इंसेट में स्टैटस बैर की ऊँचाई शामिल होती है (आमतौर पर Notch वाले iPhones के लिए 44 या 50 पॉइंट)। निचला इंसेट होम इंडिकेटर के लिए 34 पॉइंट है। Android WindowInsets का उपयोग करता है — स्टैटस बैर के लिए ऊपरी इंसेट और सिस्टम नेविगेशन के लिए निचला इंसेट।

प्लेटफ़ॉर्मऊपरी इंसेटनिचला इंसेटस्रोत
iOS (Notch)44-50 pt34 ptsafeAreaInsets.top / .bottom
iOS (बिना Notch)20 pt0 ptsafeAreaInsets.top / .bottom
Android (कटआउट के साथ)24-48 dp24-48 dpWindowInsets.systemBarsInsets
Android (बिना कटआउट)24 dp0 dpWindowInsets.statusBarsInsets

महत्वपूर्ण: SafeAreaView स्वचालित रूप से पैडिंग लागू करता है, लेकिन केवल रूट कंटैनर के लिए। नेस्टेड घटकों को सुरक्षा नहीं मिलती — प्रत्येक स्क्रीन का अपना SafeAreaView होना चाहिए। मोडल विंडो और BottomSheet के लिए, अलग से इंसेट्स का ध्यान रखें।

Notch, Dynamic Island और सिस्टम बैर्स

Notch स्क्रीन के शीर्ष भाग में एक हार्डवेयर कटआउट है जिसमें कैमरा और संवेदक होते हैं। यह iPhone X (2017) में दिखाई दिया था। Dynamic Island iPhone 14 Pro और नए का एक सॉफ़्टवेयर-हार्डवेयर क्षेत्र है, जो Notch को एक इंटरैक्टिव तत्व से बदलता है। दोनों को 50-56 pt के ऊपरी इंसेट की आवश्यकता होती है।

Android पर, कटआउट विभिन्न आकारों में आते हैं: आँसू के आकार का, पंच-होल, कैमरा के नीचे पट्टी। Android पर SafeAreaView WindowInsets का उपयोग करता है, जो कटआउट के आकार को ध्यान में रखते हैं। लैंडस्केप ऑरिएंटेशन में ऐप्स के लिए, सामग्री को सिस्टम तत्वों पर अतिव्यापित होने से रोकने के लिए साइड इंसेट्स जोड़े जाते हैं।

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>
);

Edge-to-edge दृष्टिकोण (Android 15+) सिस्टम बैर्स के नीचे सामग्री खींचने की सिफारिश करता है, लेकिन इंटरैक्टिव तत्वों के लिए इंसेट्स का ध्यान रखते हुए। SafeAreaView इस संतुलन को बनाए रखने में मदद करता है: पृष्ठभूमि बैर्स के नीचे खींची जाती है, जबकि बटन और टेक्स्ट सुरक्षित क्षेत्र में रहते हैं।

SafeAreaView का उपयोग और विकल्प

SafeAreaView सामग्री की रक्षा का सबसे सरल तरीका है, लेकिन हमेशा लचीला नहीं है। यह घटक सभी पक्षों पर समान पैडिंग लागू करता है, जो असुविधाजनक होता है जब विभिन्न किनारों के लिए अलग-अलग पैडिंग की आवश्यकता होती है। उदाहरण के लिए, साइड पैडिंग अनावश्यक हो सकती है, जबकि निचली पैडिंग केवल एक बटन के लिए आवश्यक हो सकती है।

मुख्य विकल्प: useSafeAreaInsets react-native-safe-area-context से (सबसे लचीला हल), Android पर StatusBar.currentHeight, डिवाइस मॉडल की मैनुअल जाँच के साथ Platform.OS। जटिल मामलों के लिए, समग्र कंटैनर के लिए SafeAreaView और अलग-अलग तत्वों के लिए useSafeAreaInsets का संयोजन उपयोग करें।

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

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

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

react-native-safe-area-context लाइब्रेरी React Native में Safe Area के साथ काम करने का डी फैक्टो मानक है। यह Expo, React Navigation और अधिकांश UI किट्स द्वारा समर्थित है। यह दोनों कार्यात्मक और क्लास-आधारित दृष्टिकोणों के लिए hook और Consumer घटक दोनों प्रदान करता है।

पूर्ण नियंत्रण के लिए react-native-safe-area-context

react-native-safe-area-context एक लाइब्रेरी है जो बिल्ट-इन SafeAreaView की तुलना में अधिक लचीला API प्रदान करती है। मुख्य लाभ useSafeAreaInsets hook के माध्यम से अलग-अलग इंसेट मानों (top, bottom, left, right) तक पहुँच है, जो इंसेट्स के चयनात्मक अनुप्रयोग की अनुमति देता है।

लाइब्रेरी SafeAreaProvider भी प्रदान करती है — एक घटक जो एप्लिकेशन के शीर्ष स्तर पर आवश्यक है। यह स्क्रीन घुमाने या कीबोर्ड खोलने पर सिस्टम इंसेट परिवर्तनों की सदस्यता लेता है। React Navigation डिफ़ॉल्ट रूप से इस लाइब्रेरी का उपयोग करता है।

react-native-safe-area-context से SafeAreaView बिल्ट-इन से अलग है: यह अधिक उपकरणों पर काम करता है और इंसेट परिवर्तन एनिमेशन का समर्थन करता है। नए प्रोजेक्टों के लिए, इस लाइब्रेरी को निर्भरता के रूप में स्थापित करने और बिल्ट-इन के बजाय इसके SafeAreaView का उपयोग करने की सिफारिश की जाती है।

SafeAreaView के साथ काम करते समय सामान्य गलतियाँ

SafeAreaView अक्सर गलत तरीके से उपयोग किया जाता है। पहली गलती प्रत्येक घटक को SafeAreaView में लपेटना है, जो डबल पैडिंग बनाता है। नियम: स्क्रीन के रूट View के लिए एक SafeAreaView। नेस्टेड घटक Flex लेआउट के माध्यम से इंसेट्स प्राप्त करते हैं।

दूसरी गलती Android को नजरअंदाज करना है। Android पर, SafeAreaView WindowInsets का उपयोग करता है, जो OS संस्करणों के बीच भिन्न हो सकते हैं। Android 15+ पर, सिस्टम बैर्स पारदर्शी हो सकते हैं और इंसेट्स बदल सकते हैं। हमेशा SafeAreaView को एमुलेटर में नहीं, बल्कि असली उपकरणों पर परीक्षण करें।

तीसरी गलती हार्डकोडेड पैडिंग है। कभी भी Platform.OS === 'ios' ? 44 : 24 का उपयोग न करें — इंसेट मान मॉडल और OS संस्करणों के बीच बदलते रहते हैं। हमेशा सिस्टम API का उपयोग करें: safeAreaInsets या useSafeAreaInsets। iPhone 15 Pro पर Dynamic Island के अलग इंसेट्स हैं जो iPhone X पर Notch से भिन्न हैं।

अक्सर पूछे जाने वाले प्रश्न

क्या SafeAreaView सभी उपकरणों पर काम करता है?

SafeAreaView iOS 11+ और Android 5+ पर काम करता है। पुराने उपकरणों पर, इंसेट्स शून्य होंगे, जिससे कोई त्रुटि नहीं होती लेकिन मैनुअल समायोजन की आवश्यकता हो सकती है। अधिकतम अनुकूलता के लिए, react-native-safe-area-context का उपयोग करें।

केवल ऊपर SafeAreaView का उपयोग कैसे करें, बिना निचली पैडिंग के?

बिल्ट-इन SafeAreaView पक्षों का चयन करने की अनुमति नहीं देता। react-native-safe-area-context से useSafeAreaInsets का उपयोग करें: insets.top प्राप्त करें और paddingTop लागू करें। या निचले इंसेट की भरपाई के लिए SafeAreaView को नकारात्मक मार्जिन वाले View में लपेटें।

Android पर SafeAreaView पैडिंग क्यों नहीं जोड़ता?

कुछ Android उपकरणों पर, SafeAreaView निर्माता सेटिंग्स के कारण काम नहीं कर सकता। सुनिश्चित करें कि React Native 0.64+ का उपयोग किया गया है। गारंटीड संचालन के लिए, react-native-safe-area-context स्थापित करें और ऐप को SafeAreaProvider में लपेटें।

क्या स्क्रीन ओरिएंटेशन SafeAreaView को प्रभावित करता है?

हाँ, स्क्रीन घुमने पर SafeAreaView इंसेट्स की पुनर्गणना करता है। Notch वाले iPhones पर लैंडस्केप ओरिएंटेशन में, साइड इंसेट्स 0 हो सकते हैं, जबकि ऊपरी इंसेट बना रहता है। react-native-safe-area-context घटक स्वचालित रूप से ओरिएंटेशन परिवर्तनों की सदस्यता लेता है।

SafeAreaView और StatusBar में क्या अंतर है?

SafeAreaView सभी सिस्टम तत्वों (स्टैटस बैर, Notch, होम इंडिकेटर) से सामग्री के इंसेट्स का प्रबंधन करता है। StatusBar स्टैटस बैर के रंग, शैली और दृश्यता को नियंत्रित करने के लिए एक घटक है। ये अलग-अलग कार्यों को हल करते हैं और एक साथ उपयोग किए जा सकते हैं।

सारांश

  • SafeAreaView — iOS (Notch, Dynamic Island) और Android (स्टैटस बैर, नेविगेशन) पर सिस्टम इंसेट्स के स्वचालित हिसाब के लिए एक React Native घटक
  • यह कैसे काम करता है — safeAreaInsets (iOS) या WindowInsets (Android) पढ़ता है और उन्हें रूट कंटैनर पर पैडिंग के रूप में लागू करता है
  • Notch और Dynamic Island को 44-56 pt के ऊपरी इंसेट्स की आवश्यकता होती है, iPhone होम इंडिकेटर के लिए 34 pt का निचला इंसेट
  • react-native-safe-area-context — चयनात्मक इंसेट अनुप्रयोग के लिए useSafeAreaInsets hook के साथ एक अधिक लचीला विकल्प
  • सामान्य गलतियाँ: डबल पैडिंग, सिस्टम API के बजाय हार्डकोडेड पैडिंग, Android खासताओं की अनदेखी
  • Edge-to-edge डिस्प्ले को इंटरैक्टिव तत्वों के सही स्थानन के लिए SafeAreaView की आवश्यकता होती है
  • प्रति स्क्रीन एक SafeAreaView — नेस्टेड रैपर डबल पैडिंग बनाते हैं जो लेआउट को तोड़ देते हैं

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें