ऐप्लिकेशन बार ऐसे कंटेनर होते हैं जिनसे उपयोगकर्ता को मुख्य सुविधाओं और नेविगेशन आइटम का ऐक्सेस मिलता है. ऐप्लिकेशन बार दो तरह के होते हैं: टॉप ऐप्लिकेशन बार और बॉटम ऐप्लिकेशन बार. उनके दिखने का तरीका और मकसद यहां बताया गया है:
टाइप |
थीम |
मकसद |
---|---|---|
टॉप ऐप्लिकेशन बार |
स्क्रीन पर सबसे ऊपर. |
इससे आपको अहम टास्क और जानकारी का ऐक्सेस मिलता है. आम तौर पर, इसमें टाइटल, मुख्य ऐक्शन आइटम, और कुछ नेविगेशन आइटम होस्ट किए जाते हैं. |
बॉटम ऐप्लिकेशन बार |
स्क्रीन के सबसे निचले हिस्से पर. |
आम तौर पर, इसमें नेविगेशन के मुख्य आइटम शामिल होते हैं. अन्य मुख्य कार्रवाइयों का ऐक्सेस भी दे सकता है, जैसे कि शामिल फ़्लोटिंग ऐक्शन बटन का इस्तेमाल करके. |
सबसे ऊपर मौजूद ऐप्लिकेशन बार और सबसे नीचे मौजूद ऐप्लिकेशन बार को लागू करने के लिए, TopAppBar
का इस्तेमाल करें और
BottomAppBar
कंपोज़ेबल. इनकी मदद से, एक जैसे इंटरफ़ेस बनाए जा सकते हैं. इनमें नेविगेशन और ऐक्शन कंट्रोल शामिल होते हैं. साथ ही, ये इंटरफ़ेस मटीरियल डिज़ाइन के सिद्धांतों के मुताबिक होते हैं.
टॉप ऐप्लिकेशन बार
नीचे दी गई टेबल में चार तरह के टॉप ऐप्लिकेशन बार के बारे में बताया गया है:
टाइप |
उदाहरण |
---|---|
छोटे साइज़: उन स्क्रीन के लिए जिन्हें बहुत ज़्यादा नेविगेशन या कार्रवाइयों की ज़रूरत नहीं होती. |
|
बीच में अलाइन की गई: उन स्क्रीन के लिए जिनमें एक प्राइमरी ऐक्शन होता है. |
|
मीडियम: उन स्क्रीन के लिए जिनमें ज़्यादा नेविगेशन और कार्रवाइयों की ज़रूरत होती है. |
|
बड़ी: उन स्क्रीन के लिए जिनमें बहुत ज़्यादा नेविगेशन और कार्रवाइयों की ज़रूरत होती है. |
|
एपीआई प्लैटफ़ॉर्म
सबसे ऊपर मौजूद चार अलग-अलग ऐप्लिकेशन बार लागू करने की सुविधा देने वाले अलग-अलग कॉम्पोज़ेबल काफ़ी मिलते-जुलते हैं. ये कई मुख्य पैरामीटर शेयर करते हैं:
title
: ऐप्लिकेशन बार में दिखने वाला टेक्स्ट.navigationIcon
: नेविगेशन के लिए मुख्य आइकॉन. इस पर दिखते हैं बाईं ओर दिखेगा.actions
: ऐसे आइकॉन जो उपयोगकर्ता को मुख्य कार्रवाइयों का ऐक्सेस देते हैं. वे ऐसे दिखते हैं दाईं ओर मौजूद बटन पर क्लिक करें.scrollBehavior
: इससे यह तय होता है कि ऊपर दिए गए ऐप्लिकेशन बार को स्क्रोल करने पर कैसी प्रतिक्रिया मिलती है स्कैफ़ोल्ड का अंदरूनी कॉन्टेंट देख सकते हैं.colors
: इससे यह तय होता है कि ऐप्लिकेशन बार कैसा दिखेगा.
स्क्रोल करने की कार्रवाई
आपके पास यह कंट्रोल करने का विकल्प होता है कि जब उपयोगकर्ता दिए गए स्काफ़ोल्ड के अंदरूनी कॉन्टेंट को स्क्रोल करे, तो ऐप्लिकेशन बार कैसे काम करे. ऐसा करने के लिए,
TopAppBarScrollBehavior
पर क्लिक करें और उसे
scrollBehavior
पैरामीटर.
TopAppBarScrollBehavior
तीन तरह के होते हैं. इनके बारे में यहां बताया गया है:
enterAlwaysScrollBehavior
: जब उपयोगकर्ता स्कैफ़ोल्ड के अंदरूनी कॉन्टेंट को ऊपर खींचता है, तो सबसे ऊपर मौजूद ऐप्लिकेशन बार छोटा हो जाता है. ऐप्लिकेशन बार तब बड़ा होता है, जब उपयोगकर्ता अंदर के कॉन्टेंट को दिखाता है.exitUntilCollapsedScrollBehavior
:enterAlwaysScrollBehavior
की तरह, हालांकि, जब उपयोगकर्ता आखिर में आखिर तक पहुंचता है, तो ऐप्लिकेशन बार और बढ़ जाता है मैनेज करें.pinnedScrollBehavior
: ऐप्लिकेशन बार अपनी जगह पर बना रहता है और स्क्रीन पर स्क्रोल करने पर भी नहीं बदलता.
नीचे दिए गए उदाहरणों में इनमें से कई विकल्पों को लागू किया गया है.
उदाहरण
यहां दिए गए सेक्शन में, चार अलग-अलग तरह के टॉप ऐप्लिकेशन बार को लागू करने के तरीके बताए गए हैं. साथ ही, स्क्रोल करने के तरीके को कंट्रोल करने के अलग-अलग उदाहरण भी दिए गए हैं.
छोटा
सबसे ऊपर मौजूद छोटा ऐप्लिकेशन बार बनाने के लिए, TopAppBar
कंपोज़ेबल का इस्तेमाल करें. यह है
और इस उदाहरण में सिर्फ़ एक शीर्षक दिया गया है.
नीचे दिए गए उदाहरण में, TopAppBar
के लिए scrollBehavior
की कोई वैल्यू नहीं दी गई है. इसलिए, यह अंदरूनी कॉन्टेंट को स्क्रोल करने पर कोई प्रतिक्रिया नहीं देता.
@Composable fun SmallTopAppBarExample() { Scaffold( topBar = { TopAppBar( colors = TopAppBarDefaults.topAppBarColors( containerColor = MaterialTheme.colorScheme.primaryContainer, titleContentColor = MaterialTheme.colorScheme.primary, ), title = { Text("Small Top App Bar") } ) }, ) { innerPadding -> ScrollContent(innerPadding) } }
यह लागू होने का तरीका इस तरह दिखता है:

मध्य संरेखित
बीच में अलाइन किया गया टॉप ऐप्लिकेशन बार, छोटे ऐप्लिकेशन बार जैसा ही होता है. हालांकि, टाइटल कॉम्पोनेंट के बीच में होता है. इसे लागू करने के लिए, CenterAlignedTopAppBar
के लिए बने खास कॉम्पोज़ेबल का इस्तेमाल करें.
इस उदाहरण में, पास की जाने वाली वैल्यू को पाने के लिए enterAlwaysScrollBehavior()
का इस्तेमाल किया गया है
scrollBehavior
के लिए. इसलिए, जब लोग इस विंडो को स्क्रोल करते हैं, तो बार छोटा हो जाता है
मैनेज करें.
@Composable fun CenterAlignedTopAppBarExample() { val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()) Scaffold( modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), topBar = { CenterAlignedTopAppBar( colors = TopAppBarDefaults.centerAlignedTopAppBarColors( containerColor = MaterialTheme.colorScheme.primaryContainer, titleContentColor = MaterialTheme.colorScheme.primary, ), title = { Text( "Centered Top App Bar", maxLines = 1, overflow = TextOverflow.Ellipsis ) }, navigationIcon = { IconButton(onClick = { /* do something */ }) { Icon( imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Localized description" ) } }, actions = { IconButton(onClick = { /* do something */ }) { Icon( imageVector = Icons.Filled.Menu, contentDescription = "Localized description" ) } }, scrollBehavior = scrollBehavior, ) }, ) { innerPadding -> ScrollContent(innerPadding) } }
लागू होने पर यह ऐसा दिखता है:

सामान्य जगह पर
सबसे ऊपर मौजूद ऐप्लिकेशन बार, टाइटल को किसी भी अतिरिक्त आइकॉन के नीचे रखता है. बनाने के लिए
पहले, MediumTopAppBar
कंपोज़ेबल का इस्तेमाल करें.
पिछले स्निपेट की तरह, यह उदाहरण enterAlwaysScrollBehavior()
का इस्तेमाल करके, scrollBehavior
के लिए पास की गई वैल्यू पाता है.
@Composable fun MediumTopAppBarExample() { val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(rememberTopAppBarState()) Scaffold( modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), topBar = { MediumTopAppBar( colors = TopAppBarDefaults.topAppBarColors( containerColor = MaterialTheme.colorScheme.primaryContainer, titleContentColor = MaterialTheme.colorScheme.primary, ), title = { Text( "Medium Top App Bar", maxLines = 1, overflow = TextOverflow.Ellipsis ) }, navigationIcon = { IconButton(onClick = { /* do something */ }) { Icon( imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Localized description" ) } }, actions = { IconButton(onClick = { /* do something */ }) { Icon( imageVector = Icons.Filled.Menu, contentDescription = "Localized description" ) } }, scrollBehavior = scrollBehavior ) }, ) { innerPadding -> ScrollContent(innerPadding) } }
लागू करने का यह तरीका यहां दिखाया गया है और बताया गया है कि स्क्रोल
enterAlwaysScrollBehavior()
से व्यवहार दिखता है:
बड़ा
सबसे ऊपर मौजूद ऐप्लिकेशन बार, मीडियम के बराबर होता है. हालांकि,
टाइटल और आइकॉन बड़ा है और यह स्क्रीन पर ज़्यादा जगह लेता है. इसे बनाने के लिए, LargeTopAppBar
कॉम्पोज़ेबल का इस्तेमाल करें.
पिछले स्निपेट के उलट, इस उदाहरण में
पास की जाने वाली वैल्यू पाने के लिए, exitUntilCollapsedScrollBehavior()
scrollBehavior
. इसलिए, जब लोग इस विंडो को स्क्रोल करते हैं, तो बार छोटा हो जाता है
स्कैफ़ोल्ड में मौजूद अंदरूनी कॉन्टेंट को अपलोड किया जा सकता है. हालांकि, यह कॉन्टेंट तब बड़ा हो जाता है, जब उपयोगकर्ता पेज के आखिर तक स्क्रोल करता है
कॉन्टेंट को समझने के लिए प्रोत्साहित करते हैं.
@Composable fun LargeTopAppBarExample() { val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior(rememberTopAppBarState()) Scaffold( modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), topBar = { LargeTopAppBar( colors = TopAppBarDefaults.topAppBarColors( containerColor = MaterialTheme.colorScheme.primaryContainer, titleContentColor = MaterialTheme.colorScheme.primary, ), title = { Text( "Large Top App Bar", maxLines = 1, overflow = TextOverflow.Ellipsis ) }, navigationIcon = { IconButton(onClick = { /* do something */ }) { Icon( imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Localized description" ) } }, actions = { IconButton(onClick = { /* do something */ }) { Icon( imageVector = Icons.Filled.Menu, contentDescription = "Localized description" ) } }, scrollBehavior = scrollBehavior ) }, ) { innerPadding -> ScrollContent(innerPadding) } }
यह लागू होने का तरीका इस तरह दिखता है:

बॉटम ऐप्लिकेशन बार
सबसे नीचे मौजूद ऐप्लिकेशन बार बनाने के लिए, BottomAppBar
कॉम्पोज़ेबल का इस्तेमाल करें. इसका इस्तेमाल करके
कंपोज़ेबल, टॉप ऐप्लिकेशन बार कंपोज़ेबल, जो
इस पेज के पिछले सेक्शन शामिल करें. इन मुख्य पैरामीटर के लिए, कॉम्पोज़ेबल पास किए जाते हैं:
actions
: बार की बाईं ओर दिखने वाले आइकॉन की सीरीज़. आम तौर पर, ये किसी स्क्रीन के लिए मुख्य कार्रवाइयां या नेविगेशन आइटम होती हैं.floatingActionButton
: फ़्लोट करने वाला कार्रवाई बटन, जो दाईं ओर स्क्रोल करें.
@Composable fun BottomAppBarExample() { Scaffold( bottomBar = { BottomAppBar( actions = { IconButton(onClick = { /* do something */ }) { Icon(Icons.Filled.Check, contentDescription = "Localized description") } IconButton(onClick = { /* do something */ }) { Icon( Icons.Filled.Edit, contentDescription = "Localized description", ) } IconButton(onClick = { /* do something */ }) { Icon( Icons.Filled.Mic, contentDescription = "Localized description", ) } IconButton(onClick = { /* do something */ }) { Icon( Icons.Filled.Image, contentDescription = "Localized description", ) } }, floatingActionButton = { FloatingActionButton( onClick = { /* do something */ }, containerColor = BottomAppBarDefaults.bottomAppBarFabColor, elevation = FloatingActionButtonDefaults.bottomAppBarFabElevation() ) { Icon(Icons.Filled.Add, "Localized description") } } ) }, ) { innerPadding -> Text( modifier = Modifier.padding(innerPadding), text = "Example of a scaffold with a bottom app bar." ) } }
यह लागू होने का तरीका इस तरह दिखता है:

अन्य संसाधन
- Material3 दस्तावेज़ - सबसे ऊपर मौजूद ऐप्लिकेशन बार
- Material3 docs - सबसे नीचे मौजूद ऐप्लिकेशन बार
- स्कैफ़ोल्ड