navigation3

  
Navigation 3, नेविगेशन की नई लाइब्रेरी है. इसे Compose के साथ काम करने के लिए डिज़ाइन किया गया है.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
10 सितंबर, 2025 - - - 1.0.0-alpha09

डिपेंडेंसी का एलान करना

navigation3 पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.0.0-alpha09"
    implementation "androidx.navigation3:navigation3-ui:1.0.0-alpha09"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha09")
    implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha09")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

इस आर्टफ़ैक्ट के लिए कोई रिलीज़ नोट नहीं है.

वर्शन 1.0

वर्शन 1.0.0-alpha09

10 सितंबर, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha09 रिलीज़ हो गया है. वर्शन 1.0.0-alpha09 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • DecoratedNavEntryProvider को rememberDecoratedNavEntries से बदल दिया गया है. यह दिए गए डेकोरेटर (I0fe1c, b/441328236) की सूची से सजाए गए NavEntries बनाता है और उन्हें दिखाता है
  • NavBackStack अब NavKey टाइप के लिए सामान्य हो गया है. इससे ऐप्लिकेशन और लाइब्रेरी, अपने बैक स्टैक के लिए कस्टम कुंजी टाइप तय कर सकती हैं. इसके लिए, उन्हें NavKey तक सीमित नहीं रहना पड़ता. (I4d190,Iad2f4, b/420443609)
  • NavBackStack अब @kotlinx.serialization.Serializable हो गया है. इससे, प्रोसेस बंद होने और कॉन्फ़िगरेशन में बदलाव होने पर, नेविगेशन की स्थिति को सेव और वापस लाया जा सकता है. इसके लिए, अतिरिक्त बॉयलरप्लेट की ज़रूरत नहीं होती. (I2c3cf, b/420443609)
  • RememberNavBackStack को commonMain में ले जाया गया है, ताकि यह सभी प्लैटफ़ॉर्म टारगेट पर उपलब्ध हो. (Id69e7, b/420443609)

गड़बड़ियां ठीक की गईं

  • NavDisplay अब हर NavEntry को सही Lifecycle.State पर ले जाता है. (I30aac, b/440145700)
  • NavDisplay के ज़रिए सेट किए गए किसी भी नेस्ट किए गए NavigationEventDispatcherOwner को NavigationEvent लाइब्रेरी के LocalNavigationEventDispatcherOwner से अनदेखा करने की समस्या को ठीक किया गया है. (I6224a)

डिपेंडेंसी में बदलाव

वर्शन 1.0.0-alpha08

27 अगस्त, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha08 रिलीज़ हो गया है. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • Navigation3 Runtime आर्टफ़ैक्ट में नए Kotlin MultiPlatform (केएमपी) टारगेट जोड़े गए. Navigation3 Runtime अब इन प्लैटफ़ॉर्म पर काम करता है: जेवीएम (Android और डेस्कटॉप), Native (Linux, iOS, watchOS, macOS, MinGW), और Web (JavaScript, WasmJS). (I55078, b/424410398, b/419294028, b/419046226). ध्यान दें: इससे Navigation3 UI आर्टफ़ैक्ट के लिए केएमपी टारगेट नहीं मिलते. अन्य प्लैटफ़ॉर्म पर, आपको अपना कस्टम NavDisplay लागू करना होगा. अगर आपको इस सुविधा को इस्तेमाल करने में कोई समस्या आ रही है, तो कृपया Jetbrains की समस्या यहां देखें और ज़्यादा सहायता पाने के लिए, वहां इसकी प्रोग्रेस ट्रैक करें.
  • NavDisplayInfo ऑब्जेक्ट अब सार्वजनिक है. इसका इस्तेमाल, NavDisplay से दिखने वाली एंट्री की सूची को वापस पाने के लिए किया जा सकता है. (Ibc91f)

एपीआई में हुए बदलाव

  • स्टेट रीस्टोर करने के लिए, rememberNavBackStack के साथ इस्तेमाल किया जाने वाला नया NavBackStackSerializer जोड़ा गया. rememberNavBackStack() अब SavedStateConfiguration भी लेता है. इसका इस्तेमाल, अपने कॉन्फ़िगरेशन के लिए किया जा सकता है. (I2f4d2, I4cd58, b/420443609)

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से नेविगेट करने पर, लाइफ़साइकल के गलत इवेंट ट्रिगर हो जाते थे. (I8bf6d, b/425901162, b/434109022)

ऐसी समस्याएं जिनके बारे में जानकारी पहले से है

  • I8bf6d ने एक बग पेश किया था. इसकी वजह से, लाइफ़साइकल को अलग-अलग एंट्री के बजाय सीन पर आधारित किया गया था. इससे उन सभी मामलों में लाइफ़साइकल टूट गया जहां NavEntry को दिया गया key, String नहीं है या आपके NavEntry ने contentKey को ओवरराइड नहीं किया है और इसे key के बराबर सेट नहीं किया है. ध्यान दें कि ऐसा करने से, आपकी कुंजी को Bundle में सेव किया जा सकता है. इसे अगली रिलीज़ के लिए ठीक कर दिया गया है. (b/440145700)

वर्शन 1.0.0-alpha07

13 अगस्त, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha07 रिलीज़ हो गया है. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.

MinSdk अपडेट

एपीआई में हुए बदलाव

  • SavedStateNavEntryDecorator अब स्टेटस सेव करने और वापस लाने के लिए, SaveableStateProvider में पहले से मौजूद SaveableStateRegistry का इस्तेमाल करता है. (If8d9a)
  • predictivePopTransitionSpec को अब स्वाइप एज को पैरामीटर के तौर पर दिया गया है. इससे, ट्रांज़िशन को अपनी पसंद के मुताबिक बनाया जा सकता है. इसके लिए, यह देखा जाता है कि उपयोगकर्ता ने अनुमानित बैक जेस्चर किस एज से शुरू किया था. (I753a8)

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से कस्टम सीन को बार-बार रीफ़्रेश किया जाता था. ऐसा इसलिए होता था, क्योंकि सबसे हाल ही के सीन को याद नहीं रखा जाता था. (I7ba84, b/418153031)

डिपेंडेंसी अपडेट

वर्शन 1.0.0-alpha06

30 जुलाई, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha06 रिलीज़ हो गया है. वर्शन 1.0.0-alpha06 में ये बदलाव शामिल हैं.

डिपेंडेंसी अपडेट

वर्शन 1.0.0-alpha05

2 जुलाई, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha05 रिलीज़ हो गया है. वर्शन 1.0.0-alpha05 में ये बदलाव शामिल हैं.

व्यवहार में बदलाव

  • NavEntry की स्थिति अब NavDisplay को पास किए गए डेकोरेटर की मौजूदा सूची पर आधारित है. इसका मतलब है कि एक से ज़्यादा बैक स्टैक होने पर, डेकोरेटर को आपके बैक स्टैक के साथ स्वैप किया जाना चाहिए, ताकि बैक स्टैक पर NavEntry की स्थिति बनी रहे. ऐसा न करने पर, राज्यों को इस तरह से हटा दिया जाएगा जैसे एंट्री को स्वैप करने के बजाय पॉप किया गया हो. (I7a759, b/428033667)

वर्शन 1.0.0-alpha04

18 जून, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha04 रिलीज़ हो गया है. वर्शन 1.0.0-alpha04 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • NavEntry.content अब निजी है. NavEntry कॉन्टेंट को चालू करने के लिए, नए NavEntry.Content() एपीआई को कॉल करें. इसके लिए, अब key पैरामीटर की ज़रूरत नहीं होती. (Icd0fd, b/420991203)
  • NavEntry.key अब एक निजी फ़ील्ड है. NavEntry और इससे जुड़ी स्थितियों की पहचान, नए contentKey फ़ील्ड से की जानी चाहिए. यह फ़ील्ड, नए contentKeyFactory लैम्ब्डा से जनरेट होता है. साथ ही, यह NavEntry.key से जनरेट किए गए सेव किए जा सकने वाले हैश (I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812) पर डिफ़ॉल्ट रूप से सेट होता है

डिपेंडेंसी में बदलाव

  • Navigation3 अब नए androidx.navigationevent.compose आर्टफ़ैक्ट पर निर्भर करता है.

वर्शन 1.0.0-alpha03

4 जून, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha03 रिलीज़ हो गया है. वर्शन 1.0.0-alpha03 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Navigation3 अब उन backStacks के लिए डेकोरेटर की स्थितियां नहीं मिटाएगा जिन्हें स्वैप करके, किसी दूसरे backStack इंस्टेंस से बदल दिया गया है. (I28a42, b/415076044)

वर्शन 1.0.0-alpha02

23 मई, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha02 रिलीज़ हो गया है. वर्शन 1.0.0-alpha02 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • SavedStateNavEntryDecorator से जुड़ी समस्या को ठीक किया गया है. इस वजह से, एक ही प्रॉपर्टी वैल्यू वाली अलग-अलग डेटा क्लास के बीच टकराव हो रहा था. (b/418070648, Iff4775)
  • क्लास के मौजूद न होने की समस्या को ठीक किया गया है. इस वजह से, साफ़ तौर पर डिपेंडेंसी तय किए बिना ऐप्लिकेशन चलाने पर क्रैश हो जाता था. (b/419049149, I4b4ed)

वर्शन 1.0.0-alpha01

20 मई, 2025

androidx.navigation3:navigation3-*:1.0.0-alpha01 रिलीज़ हो गया है. वर्शन 1.0.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

Navigation3 एक नई नेविगेशन लाइब्रेरी है. इसे खास तौर पर, Jetpack Compose के ऐप्लिकेशन में नेविगेशन को मैनेज करने के लिए बनाया गया है. androidx.navigation3.runtime आर्टफ़ैक्ट, बिल्डिंग ब्लॉक उपलब्ध कराता है. वहीं, androidx.navigation3.ui आर्टफ़ैक्ट, NavDisplay API के ज़रिए यूज़र इंटरफ़ेस (यूआई) लेयर उपलब्ध कराता है. डेवलपर, NavDisplay कंपोज़ेबल फ़ंक्शन को सीधे तौर पर अपनी स्थिति की जानकारी दे सकते हैं. इससे डेवलपर की स्थिति में हुए बदलावों के आधार पर कॉन्टेंट बदल जाता है.

@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey

val backStack = rememberNavBackStack(Home)

NavDisplay(backStack, entryProvider = entryProvider {
  entry<Home> {
    Column {
      Text(Home)
      Button(onClick = { backStack.add(Chat) } ) {
        Text(Go to Chat)
      } 
    }
  }
  entry<Chat> { /* My Composable Content */ }
})

ज़्यादा जानकारी के लिए, Navigation3 गाइड देखें.