व्यू और Compose में इनसेट का इस्तेमाल करना

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

डिफ़ॉल्ट इनसेट को बदलना

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

उदाहरण के लिए, अगर आपका सबसे बाहरी लेआउट, Android व्यू लेआउट है, तो आपको व्यू सिस्टम में इनसेट का इस्तेमाल करना चाहिए और Compose के लिए उन्हें अनदेखा करना चाहिए. इसके अलावा, अगर आपका सबसे बाहरी लेआउट कंपोज़ेबल है, तो आपको Compose में इनसेट का इस्तेमाल करना चाहिए. साथ ही, AndroidView कंपोज़ेबल को उसी हिसाब से पैड करना चाहिए.

डिफ़ॉल्ट रूप से, हर ComposeView, इस्तेमाल के WindowInsetsCompat लेवल पर सभी इनसेट का इस्तेमाल करता है. इस डिफ़ॉल्ट ऐक्शन और सेटिंग को बदलने के लिए, AbstractComposeView.consumeWindowInsets को false पर सेट करें.

पुराने सिस्टम के साथ काम करने वाले व्यू के लिए, इनसेट डिस्पैच करने की सुविधा

अगर आपके ऐप्लिकेशन में व्यू कोड है, तो आपको यह पुष्टि करनी पड़ सकती है कि Android 10 (एपीआई लेवल 29) या इससे पहले के वर्शन वाले डिवाइसों पर, सिबलिंग व्यू में इनसेट भेजे गए हैं. ज़्यादा जानकारी के लिए, एज-टू-एज व्यू की गाइड देखें.

सिस्टम बार के आइकॉन

enableEdgeToEdge को कॉल करने से यह पक्का होता है कि डिवाइस की थीम बदलने पर, सिस्टम बार के आइकॉन के रंग अपडेट हो जाएं.

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

Kotlin

WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

Java

WindowCompat.getInsetsController(window, window.getDecorView())
    .setAppearanceLightStatusBars(false);