नेविगेशन कॉम्पोनेंट, Android ऑपरेटिंग सिस्टम के साथ काम करता है, ताकि उपयोगकर्ता के तौर पर, बैक स्टैक को चुनें आपके ऐप्लिकेशन में नेविगेट करता है. कुछ मामलों में, अपने कई खातों को एक साथ एक ही समय में, एक ही समय पर. उदाहरण के लिए, अगर आपके ऐप्लिकेशन में bottom है नेविगेशन या नेविगेशन पैनल, पीछे के एक से ज़्यादा पेज स्टैक सपोर्ट की मदद से, उपयोगकर्ता आपके ऐप्लिकेशन में फ़्लो के बीच आसानी से स्विच कर पाते हैं वह इनमें से किसी भी स्थिति में अपनी जगह बनाए रख सकता है.
नेविगेशन कॉम्पोनेंट, ऐसे एपीआई उपलब्ध कराता है जो
नेविगेशन वाले सेक्शन में डेस्टिनेशन की स्थिति को सेव और वापस लाएं
ग्राफ़ देखें. कॉन्टेंट बनाने
NavigationUI
क्लास में शामिल है
ऐसे तरीके जो इसे अपने-आप मैनेज करते हैं, लेकिन आप इनमें मौजूद एपीआई का भी इस्तेमाल कर सकते हैं
और कस्टमाइज़ करके लागू किया जा सकता है.
नेविगेशन यूज़र इंटरफ़ेस (यूआई) की मदद से, सहायता अपने-आप लागू होने की सुविधा चालू करें
NavigationUI
क्लास
इसमें ऐसे एपीआई शामिल हैं जो मेन्यू आइटम की स्थिति को इस तरह अपने-आप सेव और पहले जैसा करते हैं:
उपयोगकर्ता उनके बीच आते-जाते रहते हैं. ये एपीआई, कई बैक स्टैक की सुविधा को इनके ज़रिए लागू करते हैं:
नीचे दिए गए मामलों में डिफ़ॉल्ट:
- जब डिवाइस पर सही तरीके से
setupWithNavController()
NavigationView
याBottomNavigationView
के इंस्टेंस को किसीNavController
इंस्टेंस, जैसा कि एक नेविगेशन जोड़ें में बताया गया है ड्रॉवर या सबसे नीचे नेविगेशन के साथ दिखता है. - जब आप
onNavDestinationSelected()
एक कस्टम नेविगेशन मेनू बनाने के लिए यूज़र इंटरफ़ेस (यूआई), जो होस्ट किए गए डेस्टिनेशन से जुड़ा हैNavController
इंस्टेंस से.
एक से ज़्यादा बैक स्टैक लागू करने के लिए, इन एपीआई को कोड में और बदलाव करने की ज़रूरत नहीं होती का समर्थन करता है और है.
मौजूदा एपीआई की मदद से, सहायता मैन्युअल तौर पर लागू करें
अगर NavigationUI
में मौजूद एलिमेंट आपकी ज़रूरी शर्तों को पूरा नहीं करते, तो इसका मतलब है कि आपको
में से किसी एक की मदद से, बैक स्टैक को सेव और वापस लाने के लिए, दिए गए एपीआई का इस्तेमाल किया जा सकता है
नेविगेशन कॉम्पोनेंट से मिले दूसरे एपीआई प्लैटफ़ॉर्म का इस्तेमाल करता है.
नेविगेशन एक्सएमएल
नेविगेशन एक्सएमएल में, आपके नेविगेशन ग्राफ़ के <action>
एलिमेंट,
app:popUpToSaveState
एट्रिब्यूट का इस्तेमाल करके, उन डेस्टिनेशन की स्थिति को सेव किया जाता है जिनके लिए
app:popUpTo
का इस्तेमाल करके कार्रवाई पॉप-अप हुई. वे app:restoreState
में तय किए गए डेस्टिनेशन के लिए, पहले से सेव की गई किसी स्थिति को वापस लाने का एट्रिब्यूट
app:destination
एट्रिब्यूट.
एक से ज़्यादा बैक स्टैक को सपोर्ट करने के लिए, इन एट्रिब्यूट का इस्तेमाल किया जा सकता है. नेविगेशन के दौरान
कार्रवाई के लिए उपयोगकर्ता को एक बैक स्टैक से दूसरे में ले जाना होगा, दोनों सेट करें
app:popUpToSaveState
और app:restoreState
से true
तक
<action>
एलिमेंट. इस तरह से, यह कार्रवाई मौजूदा पेज की मौजूदा स्थिति को बचाती है
स्टैक होने के साथ-साथ डेस्टिनेशन की पहले से सेव की गई स्थिति को भी वापस लाएं
स्टैक कहा जाता है.
इस उदाहरण में, एक ऐसी कार्रवाई दिखाई गई है जिसमें इन दोनों एट्रिब्यूट का इस्तेमाल किया गया है:
<action
android:id=”@+id/swap_stack”
app:destination=”@id/second_stack”
app:restoreState=”true”
app:popUpTo=”@id/first_stack_start_destination”
app:popUpToSaveState=”true” />
नेविगेशन के विकल्प
NavOptions
क्लास
बैक स्टैक को सेव और वापस लाने के लिए, नेविगेशन के खास विकल्प पास किए जा सकते हैं
नेविगेट करने के लिए, NavController
का इस्तेमाल करें. यह बात तब लागू होती है, जब आप अपने
Kotlin की मदद से NavOptions
का इंस्टेंस
DSL या
NavOptions.Builder
:
Kotlin
// Use the navigate() method that takes a navOptions DSL Builder navController.navigate(selectedBottomNavRoute) { launchSingleTop = true restoreState = true popUpTo(navController.graph.findStartDestination().id) { saveState = true } }
Java
NavOptions navOptions = new NavOptions.Builder() .setLaunchSingleTop(true) .setRestoreState(true) .setPopUpTo(NavGraph.findStartDestination(navController.getGraph()).getId(), false, // inclusive true) // saveState .build(); navController.navigate(selectedBottomNavId, null, navOptions);
नेविगेशन के विकल्पों को पास करने के बारे में ज़्यादा जानने के लिए, NavOptions को लागू करने का तरीका देखें प्रोग्रामेटिक रूप से करता है.
अन्य संसाधन
नेविगेशन कॉम्पोनेंट की मदद से, एक से ज़्यादा बैक स्टैक सुविधा के बारे में ज़्यादा जानने के लिए, नीचे दिए गए अतिरिक्त संसाधन देखें:
ब्लॉग पोस्ट
- MAD स्किल: एक से ज़्यादा बैक स्टैक पर नेविगेट करना मध्यम पर
- नेविगेशन: बैक स्टैक के बारे में गहराई से जानकारी मध्यम पर
सैंपल
- अब Android में ऐप्लिकेशन GitHub पर
- Jetnews GitHub पर
- JetSnack GitHub पर