अगर आपके ऐप्लिकेशन में Compose और View, दोनों कोड शामिल हैं, तो आपको यह साफ़ तौर पर बताना पड़ सकता है कि दोनों में से किस सिस्टम इनसेट का इस्तेमाल किया जाना चाहिए. साथ ही, यह पक्का करना होगा कि इनसेट, सिबलिंग व्यू में भेजे जाएं.
डिफ़ॉल्ट इनसेट बदलना
अगर आपकी स्क्रीन पर एक ही हैरारकी में व्यू और लिखने के लिए कोड, दोनों मौजूद हैं, तो आपको डिफ़ॉल्ट इनसेट को बदलना पड़ सकता है. इस मामले में, आपको साफ़ तौर पर यह बताना होगा कि इनसेट का इस्तेमाल किसमें किया जाना चाहिए और किसमें नहीं.
उदाहरण के लिए, अगर आपका सबसे बाहरी लेआउट Android View लेआउट है, तो आपको View सिस्टम में इनसेट का इस्तेमाल करना चाहिए और Compose के लिए उन्हें अनदेखा करना चाहिए.
इसके अलावा, अगर आपका सबसे बाहरी लेआउट कोई कॉम्पोज़ेबल है, तो आपको Compose में इनसेट का इस्तेमाल करना चाहिए. साथ ही, AndroidView
कॉम्पोज़ेबल को उसी हिसाब से पैड करना चाहिए.
डिफ़ॉल्ट रूप से, हर ComposeView
, WindowInsetsCompat
लेवल पर सभी इनसेट का इस्तेमाल करता है. इस डिफ़ॉल्ट व्यवहार को बदलने के लिए, ComposeView.consumeWindowInsets
को false
पर सेट करें.
व्यू के लिए, पुराने सिस्टम के साथ काम करने वाला इनसेट डिस्पैच
अगर आपके ऐप्लिकेशन में व्यू कोड है, तो आपको यह पुष्टि करनी पड़ सकती है कि Android 10 (एपीआई लेवल 29) या उससे पहले के वर्शन वाले डिवाइसों पर, इनसेट को सिबलिंग व्यू पर भेजा जाता है. ज़्यादा जानकारी के लिए, एज-टू-एज व्यू की गाइड देखें.
सिस्टम बार के आइकॉन
enableEdgeToEdge
को कॉल करने से, डिवाइस की थीम बदलने पर, सिस्टम बार के आइकॉन के रंग अपडेट हो जाते हैं.
ऐप्लिकेशन को पूरे स्क्रीन पर दिखाने के लिए, आपको सिस्टम बार के आइकॉन के रंगों को मैन्युअल तरीके से अपडेट करना पड़ सकता है, ताकि वे आपके ऐप्लिकेशन के बैकग्राउंड से अलग दिखें. उदाहरण के लिए, स्टेटस बार के आइकॉन को हल्का बनाने के लिए:
Kotlin
WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
Java
WindowCompat.getInsetsController(window, window.getDecorView()) .setAppearanceLightStatusBars(false);