एक से ज़्यादा बैक स्टैक के साथ काम करें

नेविगेशन कॉम्पोनेंट, Android ऑपरेटिंग सिस्टम के साथ काम करता है, ताकि उपयोगकर्ता के तौर पर, बैक स्टैक को चुनें आपके ऐप्लिकेशन में नेविगेट करता है. कुछ मामलों में, अपने कई खातों को एक साथ एक ही समय में, एक ही समय पर. उदाहरण के लिए, अगर आपके ऐप्लिकेशन में bottom है नेविगेशन या नेविगेशन पैनल, पीछे के एक से ज़्यादा पेज स्टैक सपोर्ट की मदद से, उपयोगकर्ता आपके ऐप्लिकेशन में फ़्लो के बीच आसानी से स्विच कर पाते हैं वह इनमें से किसी भी स्थिति में अपनी जगह बनाए रख सकता है.

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

नेविगेशन यूज़र इंटरफ़ेस (यूआई) की मदद से, सहायता अपने-आप लागू होने की सुविधा चालू करें

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

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

मौजूदा एपीआई की मदद से, सहायता मैन्युअल तौर पर लागू करें

अगर 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 को लागू करने का तरीका देखें प्रोग्रामेटिक रूप से करता है.

अन्य संसाधन

नेविगेशन कॉम्पोनेंट की मदद से, एक से ज़्यादा बैक स्टैक सुविधा के बारे में ज़्यादा जानने के लिए, नीचे दिए गए अतिरिक्त संसाधन देखें:

ब्लॉग पोस्ट

सैंपल