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

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 का इस्तेमाल सीधे तौर पर किया जा सकता है. हालांकि, हमारा सुझाव है कि जहां भी हो सके वहां सहायता लाइब्रेरी WindowInsetsControllerCompat का इस्तेमाल करें. स्टेटस बार के कॉन्टेंट के रंग को कंट्रोल करने के लिए, theme.xml के बजाय WindowInsetsControllerCompat API का इस्तेमाल किया जा सकता है. ऐसा करने के लिए, 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);