एज-टू-एज डिसप्ले को मैन्युअल तरीके से सेट अप करें

enableEdgeToEdge को कॉल करके, अपने ऐप्लिकेशन में एज-टू-एज डिसप्ले की सुविधा चालू की जा सकती है. यह ज़्यादातर ऐप्लिकेशन के लिए काफ़ी होना चाहिए. इस गाइड में बताया गया है कि अगर आपके ऐप्लिकेशन को enableEdgeToEdge का इस्तेमाल किए बिना, एज-टू-एज सुविधा चालू करनी है, तो ऐसा कैसे करें.

अपने ऐप्लिकेशन को फ़ुल स्क्रीन में लेआउट करना

सिस्टम बार के पीछे अपने ऐप्लिकेशन को लेआउट करने के लिए, WindowCompat.setDecorFitsSystemWindows(window, false) का इस्तेमाल करें. जैसा कि यहां दिए गए कोड के उदाहरण में दिखाया गया है:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  WindowCompat.setDecorFitsSystemWindows(window, false)
}

Java

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
}

सिस्टम बार का रंग बदलना

एज-टू-एज लेआउट में काम करते समय, आपके ऐप्लिकेशन को सिस्टम बार के रंग बदलने होंगे, ताकि उसके नीचे मौजूद कॉन्टेंट दिख सके. आपका ऐप्लिकेशन यह चरण पूरा करने के बाद, सिस्टम, जेस्चर नेविगेशन मोड और बटन मोड में उपयोगकर्ता इंटरफ़ेस की सभी विज़ुअल सुरक्षा को मैनेज करता है.

  • हावभाव से नेविगेट करने का मोड: इस मोड में सिस्टम, डाइनैमिक कलर अडैप्टेशन की सुविधा लागू करता है. इसमें सिस्टम बार का रंग, उनके पीछे मौजूद कॉन्टेंट के हिसाब से बदलता है. यहां दिए गए उदाहरण में, नेविगेशन बार में मौजूद हैंडल का रंग बदलता है. जब हैंडल हल्के रंग के कॉन्टेंट के ऊपर होता है, तो उसका रंग गहरा हो जाता है. वहीं, जब हैंडल गहरे रंग के कॉन्टेंट के ऊपर होता है, तो उसका रंग हल्का हो जाता है.
पहली इमेज. हाथ के जेस्चर (स्पर्श) वाले नेविगेशन मोड में रंग में बदलाव.
  • बटन मोड: सिस्टम बार के पीछे, सिस्टम एक पारभासी स्क्रिम लागू करता है. यह एपीआई लेवल 29 या इसके बाद के वर्शन के लिए होता है. इसके अलावा, एपीआई लेवल 28 या इससे पहले के वर्शन के लिए, सिस्टम एक पारदर्शी सिस्टम बार लागू करता है.
पारदर्शी सिस्टम बार दिखाने वाली इमेज
दूसरी इमेज. सिस्टम बार के पीछे ट्रांस्लूसेंट स्क्रिम.
  • स्टेटस बार के कॉन्टेंट का रंग: इससे स्टेटस बार के कॉन्टेंट का रंग कंट्रोल किया जाता है. जैसे, समय और आइकॉन.
स्टेटस बार के कॉन्टेंट का रंग दिखाने वाली इमेज
तीसरी इमेज. स्टेटस बार में मौजूद कॉन्टेंट का रंग.

नेविगेशन बार का रंग सेट करने के लिए, themes.xml फ़ाइल में बदलाव किया जा सकता है. इसके अलावा, स्टेटस बार को पारदर्शी और स्टेटस बार के कॉन्टेंट के रंग को गहरा सेट किया जा सकता है.

<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
  <item name="android:navigationBarColor">
     @android:color/transparent
  </item>

  <!-- Optional: set to transparent if your app is drawing behind the status bar. -->
  <item name="android:statusBarColor">
     @android:color/transparent
  </item>

  <!-- Optional: set for a light status bar with dark content. -->
  <item name="android:windowLightStatusBar">
    true
  </item>
</style>

WindowInsetsController API का इस्तेमाल सीधे तौर पर किया जा सकता है. हालांकि, हमारा सुझाव है कि जहां भी हो सके वहां Support Library WindowInsetsControllerCompat का इस्तेमाल करें. स्टेटस बार के कॉन्टेंट के रंग को कंट्रोल करने के लिए, WindowInsetsControllerCompat के बजाय WindowInsetsControllerCompat API का इस्तेमाल किया जा सकता है.theme.xml इसके लिए, setAppearanceLightNavigationBars() फ़ंक्शन का इस्तेमाल करें. नेविगेशन के फ़ोरग्राउंड का रंग बदलकर हल्का रंग करने के लिए true पास करें या डिफ़ॉल्ट रंग पर वापस जाने के लिए false पास करें.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

WindowInsetsControllerCompat windowInsetsController =
      ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
    return;
}

windowInsetsController.setAppearanceLightNavigationBars(true);