जब आपका ऐप्लिकेशन, एसडीके 35 या इसके बाद के वर्शन को टारगेट करता है, तब एज-टू-एज डिसप्ले लागू हो जाता है. सिस्टम स्टेटस बार और हाथ के जेस्चर (स्पर्श) वाले नेविगेशन बार पारदर्शी हैं. हालांकि, तीन बटन वाला नेविगेशन बार हल्का पारदर्शी है. इसे पुराने वर्शन के साथ काम करने लायक बनाने के लिए, enableEdgeToEdge पर कॉल करें.
हालांकि, ऐसा हो सकता है कि सिस्टम के डिफ़ॉल्ट सेटिंग, इस्तेमाल के सभी मामलों में काम न करें. सिस्टम बार को पारदर्शी या हल्का पारदर्शी कब रखना है, इस बारे में खास जानकारी पाने के लिए, Android सिस्टम बार के डिज़ाइन से जुड़ी गाइडलाइन और एज-टू-एज डिज़ाइन से जुड़ी गाइडलाइन पढ़ें.
पारदर्शी सिस्टम बार बनाना
Android 15 या उसके बाद के वर्शन को टारगेट करके या इससे पहले के वर्शन के लिए डिफ़ॉल्ट आर्ग्युमेंट के साथ enableEdgeToEdge() को कॉल करके, पारदर्शी जेस्चर वाला नेविगेशन बार बनाएं. तीन बटन वाले नेविगेशन बार के लिए, Window.setNavigationBarContrastEnforced को false पर सेट करें. ऐसा न करने पर, पारदर्शी स्क्रिम लागू हो जाएगा.
पारदर्शी सिस्टम बार बनाना
पारदर्शी स्टेटस बार बनाने के लिए, एक कस्टम कंपोज़ेबल बनाएं. यह कंपोज़ेबल, मुख्य कॉन्टेंट पर ओवरलैप होता है और इनसेट से कवर किए गए हिस्से में ग्रेडिएंट बनाता है.
class SystemBarProtectionSnippets : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // enableEdgeToEdge sets window.isNavigationBarContrastEnforced = true // which is used to add a translucent scrim to three-button navigation enableEdgeToEdge() setContent { MyTheme { // Main content MyContent() // After drawing main content, draw status bar protection StatusBarProtection() } } } } @Composable private fun StatusBarProtection( color: Color = MaterialTheme.colorScheme.surfaceContainer, ) { Spacer( modifier = Modifier .fillMaxWidth() .height( with(LocalDensity.current) { (WindowInsets.statusBars.getTop(this) * 1.2f).toDp() } ) .background( brush = Brush.verticalGradient( colors = listOf( color.copy(alpha = 1f), color.copy(alpha = 0.8f), Color.Transparent ) ) ) ) }
अनुकूलित किए जा सकने वाले ऐप्लिकेशन के लिए, एक कस्टम कंपोज़ेबल डालें. यह हर पैन के रंगों से मेल खाता हो. इसे एंड-टू-एंड डिज़ाइन में देखा जा सकता है. पारदर्शी नेविगेशन बार बनाने के लिए, Window.setNavigationBarContrastEnforced को सही पर सेट करें.