जब आपका ऐप्लिकेशन SDK टूल 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, heightProvider: () -> Float = calculateGradientHeight(), ) { Canvas(Modifier.fillMaxSize()) { val calculatedHeight = heightProvider() val gradient = Brush.verticalGradient( colors = listOf( color.copy(alpha = 1f), color.copy(alpha = .8f), Color.Transparent ), startY = 0f, endY = calculatedHeight ) drawRect( brush = gradient, size = Size(size.width, calculatedHeight), ) } } @Composable fun calculateGradientHeight(): () -> Float { val statusBars = WindowInsets.statusBars val density = LocalDensity.current return { statusBars.getTop(density).times(1.2f) } }
अडैप्टिव ऐप्लिकेशन के लिए, पसंद के मुताबिक ऐसा कॉम्पोज़ेबल डालें जो हर पैनल के रंग से मेल खाता हो. जैसा कि एज-टू-एज डिज़ाइन में देखा गया है. पारदर्शी नेविगेशन बार बनाने के लिए, Window.setNavigationBarContrastEnforced
को 'सही' पर सेट करें.