navigation3
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 23 सितंबर, 2026 | 1.2.0 | - | - | 1.3.0-alpha01 |
डिपेंडेंसी का एलान करना
navigation3 पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.3.0-alpha01" implementation "androidx.navigation3:navigation3-ui:1.3.0-alpha01" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.3.0-alpha01") implementation("androidx.navigation3:navigation3-ui:1.3.0-alpha01") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.3
वर्शन 1.3.0-alpha01
23 सितंबर, 2026
androidx.navigation3:navigation3-*:1.3.0-alpha01 रिलीज़ हो गया है. वर्शन 1.3.0-alpha01 में ये बदलाव शामिल हैं.
** गड़बड़ियां ठीक की गईं **
NavDisplayमें प्रेडिक्टिव बैक ऐनिमेशन हैंडऑफ़ की समस्या ठीक की गई. इसके लिए,DeferredAnimatedContentपर माइग्रेट किया गया और ट्रांज़िशन हैंडऑफ़ की समस्याओं को हल किया गया. I145eaedd b/430807423
इस आर्टफ़ैक्ट के लिए कोई रिलीज़ नोट उपलब्ध नहीं है.
Navigation3 का वर्शन 1.2
वर्शन 1.2.0
23 सितंबर, 2026
androidx.navigation3:navigation3-*:1.2.0 रिलीज़ हो गया है. वर्शन 1.2.0 में ये बदलाव शामिल हैं.
1.2.0 अब स्टेबल वर्शन है!
1.1.0 के बाद हुए अहम बदलाव
Result API
- इस नए एपीआई की मदद से,
LocalResultEventBusऔरResultEventBusNavEntryDecoratorकी ओर से उपलब्ध कराए गएResultEventBusका इस्तेमाल करके,NavEntriesके बीच नतीजे पास किए जा सकते हैं. rememberResultEventBusको जोड़ा गया, ताकिResultEventBusNavEntryDecoratorके बाहरResultEventBusको होस्ट किया जा सके और उसेrememberResultEventBusNavEntryDecoratorमें पास किया जा सके.- पाए गए नतीजों को
ResultEventBus#conflateAsStateके साथ स्टेट के तौर पर ऐक्सेस किया जा सकता है याResultEffectके साथ नतीजों के फ़्लो के तौर पर इकट्ठा किया जा सकता है.
Deep Link API
Navigation3 अब DeepLinkRequest, DeepLinkUri, और DeepLinkMatcher के ज़रिए androidx.navigation3.runtime.deeplink में Kotlin Multiplatform (केएमपी) डीप लिंक के साथ काम करता है.
DeepLinkRequestऔरRequestExtras: यहDeepLinkUri, यूआरआई स्ट्रिंग या AndroidIntentसे बनाए गए डीप लिंक अनुरोध को दिखाता है. टाइप-सेफ़RequestExtrasकंटेनर का इस्तेमाल करके, अनुरोध के अतिरिक्त मेटाडेटा को अटैच किया जा सकता है. इस कंटेनर कोrequestExtrasडीएसएल औरRequestExtrasKey<T>की मदद से बनाया गया है.DeepLinkMatcher: यह एक ऐसे डीप लिंक को दिखाता है जिसेDeepLinkRequestसे मैच किया जा सकता है. हर मैच करने वाला इंस्टेंस, उस नेविगेशन कुंजी से जुड़ा होता है जो इस डीप लिंक के साथ काम करती है. किसी नेविगेशन कुंजी को एक से ज़्यादा मैच करने वालों से जोड़ा जा सकता है.DeepLinkMatcher.matchको कॉल करने पर,MatchResultमिलेगा. अगर मैच हो जाता है, तो इसमें नेविगेशन की से जुड़ी जानकारी होगी. डिफ़ॉल्ट रूप से,DeepLinkMatcherको दो तरीकों से लागू किया जाता है:UriDeepLinkMatcherका इस्तेमालUriके आधार पर डीप लिंक मैच करने के लिए किया जाता है. वहीं,StaticKeyDeepLinkMatcherका इस्तेमाल सिर्फ़DeepLinkMatcher.Filterके साथ डीप लिंक मैच करने के लिए किया जाता है. , बूलियन के हिसाब से मैच होता है.BackStackMatcher: डीप लिंक के मेल खाने पर सिंथेटिक पिछली गतिविधियां बनाने के लिए,DeepLinkMatcher.BackStackMatcherकोDeepLinkMatcher.withBackStackएक्सटेंशन फ़ंक्शन के ज़रिए बनाया जा सकता है.
पीछे जाने पर झलक दिखाने वाले नेविगेशन को हैंडल करना
SceneStateको पीछे जाने पर झलक दिखाने की सुविधा (onBackCompletedऔरonBackCancelled) के साथ आसानी से कनेक्ट करने के लिए,NavigationBackHandlerऔरrememberNavigationEventStateजोड़े गए हैं. इससे कस्टम यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट, स्टैंडर्ड पीछे जाने की प्रोसेस और पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर की सुविधा के साथ काम कर सकते हैं. इसके लिए, पिछली गतिविधियों के डेल्टा की मैन्युअल तरीके से गिनती करने की ज़रूरत नहीं होती.- पीछे जाने पर झलक दिखाने की सुविधा के ट्रांज़िशन को बेहतर बनाया गया है. इसमें फ़ॉरवर्ड ऐनिमेशन के दौरान, बीच में ही ट्रिगर किए गए पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर की सुविधा भी शामिल है.
अन्य बदलाव
NavEntry.contentKeyअब डिफ़ॉल्ट रूप सेkey.toString()औरkey::class.toString()का कंपोज़िट है. इससेdata objectकुंजियों के बीच होने वाले टकराव को रोका जा सकता है. इन कुंजियों का नाम अलग-अलग इंटरफ़ेस पर एक जैसा होता है.EntryProviderअब मुख्य टाइप के बजाय मुख्य इंस्टेंस के आधार पर मैच करने को प्राथमिकता देता है.- लिंट चेक जोड़ा गया है, ताकि यह पक्का किया जा सके कि
Sceneलागू करने के तरीके या तोdata classes हैं याequalsऔरhashCodeलागू करते हैं.
वर्शन 1.2.0-rc01
09 सितंबर, 2026
androidx.navigation3:navigation3-*:1.2.0-rc01 रिलीज़ हो गया है. वर्शन 1.2.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- डीप लिंक यूआरआई पैटर्न में डुप्लीकेट प्लेसहोल्डर के नाम इस्तेमाल करने की अनुमति नहीं है. (I8985c, b/522343165)
वर्शन 1.2.0-beta01
26 अगस्त, 2026
androidx.navigation3:navigation3-*:1.2.0-beta01 रिलीज़ हो गया है. वर्शन 1.2.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
DeepLinkRequest.extrasकोMap<String, Any>से बदलकर, टाइप सेफ़ मैप जैसी नई क्लासRequestExtrasमें बदल दिया गया है. यह क्लास,RequestExtrasKey<T>सेTके जोड़े सेव करती है.RequestExtrasकोrequestExtrasडीएसएल के साथ इंस्टैंशिएट किया जा सकता है. (Ic929d, b/543883369)
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक किया गया है जिसकी वजह से फ़ॉरवर्ड ट्रांज़िशन के दौरान ट्रिगर किए गए, अनुमान लगाकर बैक जेस्चर करने की सुविधा के तहत, स्वाइप की प्रोग्रेस के हिसाब से ऐनिमेशन नहीं होता था. पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर अब ऐनिमेट होगा और ठीक से पूरा होगा. (Icdcb0, b/456218398)
- लागू करने के लिए, लिंट चेक जोड़ा गया है. इससे यह पक्का किया जा सकेगा कि
Scene, डेटा क्लास हैं या वे equals और hashcode को लागू करते हैं. इससे यह पक्का किया जा सकेगा कि ज़रूरत पड़ने पर एक हीSceneका इस्तेमाल किया जाए. (Ibdf0d, b/542316099) NavEntry.contentKeyअब डिफ़ॉल्ट रूप सेkey.toString()औरkey::class.toString()का कंपोज़िट होता है. इससे यह पक्का होता है कि एक ही नाम वाले, लेकिन अलग-अलग इंटरफ़ेस लागू करने वाले डेटा ऑब्जेक्ट में अब एक जैसाcontentKeyनहीं होगा. हालांकि, JS प्लैटफ़ॉर्म काkey::class, पूरी तरह क्वालिफ़ाइड नाम के बजाय सिर्फ़ क्लास का सामान्य नाम दिखाता है. इसलिए, JS प्लैटफ़ॉर्म को अब भी डुप्लीकेट नामों वाले डेटा ऑब्जेक्ट के लिए, कस्टमcontentKeyलागू करना चाहिए. (I1fbbb, b/512534342)IllegalArgumentExceptionमें,SaveableStateProviderकी वजह से होने वाली समस्या को ठीक किया गया है. यह समस्या, एक से ज़्यादा पॉप ट्रांज़िशन के दौरान तेज़ी से वापस नेविगेट करने पर, डुप्लीकेट कुंजियों का इस्तेमाल करने की वजह से होती थी. (I4d728, b/516312097)
वर्शन 1.2.0-alpha07
29 जुलाई, 2026
androidx.navigation3:navigation3-*:1.2.0-alpha07 रिलीज़ हो गया है. वर्शन 1.2.0-alpha07 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- किसी अन्य
DeepLinkMatcher.MatchResultको रैप करने के लिए, एक ऐब्स्ट्रैक्टWrappedMatchResultक्लास जोड़ी गई. इससे, मैच के नतीजों को अपनी पसंद के मुताबिक बनाया जा सकता है. साथ ही, उन्हें किसी दूसरे नतीजे के ऊपर लेयर किया जा सकता है. (I7d4dc, b/470282247) नई
BackStackMatcherक्लास जोड़ी गई है. यह दो पैरामीटर लेती है: एक मैच करने वाला इंस्टेंस और एक बिल्डर लैंबडा. यह इनपुट मैच करने वाले के मैच का नतीजा देता है और पिछली गतिविधियां दिखाता है. मैच होने पर,BackStackMatcherएकBackStackMatchResultदिखाता है. यहWrappedMatchResultको बढ़ाता है. इसमें मैच का ओरिजनल नतीजा और लैंबडा के साथ बनाई गई पिछली गतिविधियां शामिल होती हैं.BackStackMatcherको सिर्फ़ नएDeepLinkMatcher.withBackStackएक्सटेंशन फ़ंक्शन की मदद से बनाया जा सकता है. (Ibf987, b/470282247)एक ऐब्स्ट्रैक्ट
DeepLinkSerializerक्लास जोड़ी गई है, जोKSerializerको एक्सटेंड करती है. इसका इस्तेमालvalue : TकोStringके तौर पर कोड में बदलने और डिकोड करने के लिए किया जाता है.DeepLinkSerializerका इस्तेमाल, नॉन-प्रिमिटिव डीप लिंक आर्ग्युमेंट को क्रम से लगाने के लिए किया जा सकता है.rememberSaveableऔरrememberNavBackStackके साथ काम करता है. (Id3c9f, b/470282247)DeepLinkMatcherने दूसरा टाइप पैरामीटरout R : DeepLinkMatcher.MatchResult<T>जोड़ा है, ताकि डेवलपर टाइप कास्टिंग के बिना,DeepLinkMatcher.match()से मिले सबक्लास किए गएMatchResultकी प्रॉपर्टी ऐक्सेस कर सकें. (I693d3, b/470282247)DeepLinkMatcher.MatchResult'sT की ऊपरी सीमाAny?से बदलकरAnyहो गई है. (I6bf1a)DeepLinkRequestकंस्ट्रक्टर फ़ील्डuriअब डिफ़ॉल्ट रूप से शून्य पर सेट है. सेकंडरी कंस्ट्रक्टर केuriStringका नाम बदलकरuriकर दिया गया है. (Ia0f14, b/522194187)
गड़बड़ियां ठीक की गईं
ResultEffectअबrememberUpdatedStateका इस्तेमाल करके,onResultलैंबडा को कैप्चर करता है. (I7d2a3, b/531709234)- पाथ सेगमेंट खाली होने पर, डीप लिंक मैचिंग की समस्या ठीक की गई. अगर आर्ग्युमेंट का टाइप स्ट्रिंग है, तो खाली पाथ को खाली स्ट्रिंग वैल्यू के तौर पर माना जाएगा. ऐसा न होने पर, खाली पाथ को 'कोई वैल्यू नहीं दी गई' के तौर पर माना जाता है. साथ ही, यह डिफ़ॉल्ट वैल्यू पर वापस आ जाएगा. अगर कोई डिफ़ॉल्ट वैल्यू नहीं है, तो मैचिंग नहीं हो पाएगी. (I56575, b/535298128)
DeepLinkRequest.uriमें, खाली क्वेरी वैल्यू के लिए सहायता जोड़ी गई. अगर आर्ग्युमेंट स्ट्रिंग टाइप का है, तो खाली वैल्यू को लिटरल खाली स्ट्रिंग माना जाएगा. इसके अलावा, खाली वैल्यू को 'कोई वैल्यू नहीं दी गई' के तौर पर माना जाता है. साथ ही, मैचिंग के लिए डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाएगा. अगर कोई डिफ़ॉल्ट वैल्यू नहीं है, तो मैचिंग नहीं हो पाएगी. (I30343, b/535127459)EntryProviderअब मुख्य टाइप के बजाय मुख्य इंस्टेंस के आधार पर मैच करने को प्राथमिकता देता है. (Ib5ec9, b/533331924)SceneStateअब सबसे ऊपर मौजूद नॉन-ओवरले सीन से शुरू होने वाले पिछले सीन का सही हिसाब लगाता है. (I91915, b/513630541)
वर्शन 1.2.0-alpha06
15 जुलाई, 2026
androidx.navigation3:navigation3-*:1.2.0-alpha06 रिलीज़ हो गया है. वर्शन 1.2.0-alpha06 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- यूआरआई फ़्रैगमेंट के बारे में
UriDeepLinkMatcherदस्तावेज़ अपडेट किया गया है. इसमें बताया गया है कि वाइल्डकार्ड वाले फ़्रैगमेंट, किसी भी इनपुट से मैच करेंगे. हालांकि, इनपुट को आर्ग्युमेंट के तौर पर नहीं निकाला जाएगा. (I5ad9b, b/524677091) - अगर यूआरआई पैटर्न में कोई स्कीम शामिल नहीं है या यह डबल स्लैश से शुरू नहीं होता है, तो अनुरोध से मैच न होने
UriDeepLinkMatcherकी समस्या को ठीक किया गया है. उदाहरण के लिए,www.example.com/homeअबhttp://www.example.com/homeसे मैच करेगा. (Ia6b65, b/522791926)
वर्शन 1.2.0-alpha05
01 जुलाई, 2026
androidx.navigation3:navigation3-*:1.2.0-alpha05 रिलीज़ हो गया है. वर्शन 1.2.0-alpha05 में ये बदलाव शामिल हैं.
नया एपीआई
rememberResultEventBusएपीआई जोड़ा गया है, जोResultEventBusदिखाता है. इसेrememberResultEventBusNavEntryDecoratorको पास किया जा सकता है. इससेResultEventBusNavEntryDecoratorके बाहरResultEventBusको होस्ट किया जा सकता है. (Ia655b, b/516995400)
DeepLinkRequest
- केएमपी के साथ काम करने वाले दो कंस्ट्रक्टर जोड़े गए हैं. इनमें से एक DeepLinkUri लेता है और दूसरा रॉ स्ट्रिंग यूआरआई लेता है. (I3c088, b/513200887, b/522194187)
- (सिर्फ़ Android के लिए) एक कंस्ट्रक्टर जोड़ा गया है, जो
Intentलेता है. (Ia0498, b/513200887, b/522194187) - सभी कंस्ट्रक्टर में एक अतिरिक्त
extrasफ़ील्ड होता है. इसका इस्तेमालMap<String, Any>के लिए, अनुरोध की अतिरिक्त जानकारी अटैच करने के लिए किया जाता है. (If81d5, b/513200887) - एक्स्ट्रा का मैप बनाने के लिए, टाइप सेफ़ तरीके के तौर पर एक नया
requestExtrasdsl जोड़ा गया है. dsl,RequestExtrasKeyसेAnyके जोड़े सेव करने के लिएputफ़ंक्शन उपलब्ध कराता है.Map<String, Any>.get(key)एक्सटेंशन फ़ंक्शन का इस्तेमाल,RequestExtrasKey(I5091c, b/513200887) की मदद से मैप से डेटा पढ़ने के लिए किया जा सकता है - (सिर्फ़ Android के लिए)
ActionExtrasKeyकी मदद से, एक्सट्रा मैप बनाने के लिएActionExtrasKeyऔरactionExtraफ़ंक्शन जोड़ा गया. (Id0c90, [b/513200887] MimeTypeExtrasKeyकी मदद से, एक्सट्रा मैप बनाने के लिएMimeTypeExtrasKeyऔरmimeTypeExtraफ़ंक्शन जोड़े गए. (I85131, b/513200887)
DeepLinkMatcher
DeepLinkMatcher.mimeTypeFilterऔरDeepLinkMatcher.actionFilterफ़ंक्शन जोड़े गए हैं. इनकी मदद से,DeepLinkMatcher.Filtersबनाया जा सकता है. यहDeepLinkRequestकोmimeTypeयाactionके हिसाब से फ़िल्टर करता है. यह सुविधा सिर्फ़ Android पर उपलब्ध है. दोनों फ़िल्टर, स्ट्रिंग की समानता के आधार पर मैच करते हैं. साथ ही, ये केस-इनसेंसिटिव होते हैं. (Ie7e67, b/513191950)
एपीआई में हुए बदलाव
DeepLinkRequest
fromActionफ़ैक्ट्री फ़ंक्शन हटाएं. किसी कार्रवाई से जुड़ा अनुरोध बनाने के लिए, नएDeepLinkRequest.extrasफ़ील्ड का इस्तेमाल करें.(Id0c90, b/513200887)fromMimeTypeफ़ैक्ट्री फ़ंक्शन हटाया गया. किसी mimeType से जुड़ा अनुरोध बनाने के लिए, नएDeepLinkRequest.extrasफ़ील्ड का इस्तेमाल करें. (I85131, b/513200887)- (सिर्फ़ Android के लिए)
fromIntentफ़ैक्ट्री फ़ंक्शन हटाया गया. इसे एक नए कंस्ट्रक्टर से बदल दिया गया है, जो Intent और एक्स्ट्रा मैप लेता है. (Ia0498, b/513200887, b/522194187) - फ़ैक्ट्री फ़ंक्शन
fromUriऔरfromUriStringहटा दिए गए हैं. इन्हें नए कंस्ट्रक्टर से बदल दिया गया है. ये कंस्ट्रक्टर,DeepLinkUriया रॉ स्ट्रिंग यूआरआई लेते हैं. (Id5b6f, b/522194187) DeepLinkMatcher,DeepLinkMatcher.MatchResult, और उनकी सबक्लास अब कोवेरिएंट टी (आउट टी) लेती हैं, ताकि Matchers के साथ इस्तेमाल किए जाने वाले हैरारिकल कुंजियों को टाइप कास्टिंग की ज़रूरत न पड़े. (I1e453, b/525094876)- आर्ग्युमेंट मैप के लिए
UriMatchResultकंस्ट्रक्टर पैरामीटर, अब डिफ़ॉल्ट रूप से खाली मैप पर सेट होता है. (I3acdd) DeepLinkMatcher.Filterऐब्स्ट्रैक्ट क्लास अब एक फ़ंक्शनल इंटरफ़ेस है.filterकंस्ट्रक्टर फ़ील्ड को हटा दिया गया है. इसके बजाय, इसे सीधे तौर पर सबक्लास में पास किया जाना चाहिए. (I9eb7d, b/522194187)
गड़बड़ियां ठीक की गईं
- ऐसी एंट्री पर पॉप करने पर, पॉप की गई एंट्री तुरंत गायब हो जाती थी जिसमें लैम्ब्डा वैल्यू वाला नेस्ट किया गया मेटाडेटा होता था. इस समस्या को ठीक कर दिया गया है. (Idb872, b/520494430)
UriDeepLinkMatcherको ठीक किया गया है, ताकि मैचिंग के दौरान ज़रूरी आर्ग्युमेंट मौजूद न होने पर,MissingFieldExceptionदिखाने के बजाय शून्यUriMatchResultदिखाए. (I5322f, b/524663005)- https स्कीम वाले यूआरआई वाले
UriDeeplinkMatcherको सिर्फ़ उन अनुरोधों से मैच किया जा सकता है जिनमें https स्कीम होती है. (Ibfe22, b/522304329) UriDeepLinkMatcherको ठीक करें, ताकिDeepLinkRequestकोUriDeepLinkMatcherसे मैच करते समय,httpस्कीम कोhttpsके साथ पॉज़िटिव मैच के तौर पर सही तरीके से पहचाना जा सके. (I3a62b, b/518804264)DeepLinkMatcher.MatchResultcomparator अब डिफ़ॉल्ट रूप से 0 दिखाता है, जब दो नतीजे बराबर होते हैं. (I48ddb, b/518841353)- ज़रूरी आर्ग्युमेंट मौजूद न होने की वजह से, मैच करने का अनुरोध पूरा न होने पर,
UriDeepLinkMatcherअब अपवाद दिखाने के बजाय, शून्यUriMatchResultदिखाएगा. (I669a7, b/470282247, b/512923412)
वर्शन 1.2.0-alpha04
03 जून, 2026
androidx.navigation3:navigation3-*:1.2.0-alpha04 रिलीज़ हो गया है. वर्शन 1.2.0-alpha04 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- ओवरले ऐनिमेशन से जुड़ी समस्या को ठीक किया गया है. इसमें, नेस्ट किए गए ओवरले (जैसे,
ModalBottomSheet) के ऊपर मौजूद ओवरले के बंद होने पर, वे अचानक से फिर से ऐनिमेट होने लगते थे. (Ia2b9e, b/502624496)
वर्शन 1.2.0-alpha03
19 मई, 2026
androidx.navigation3:navigation3-*:1.2.0-alpha03 रिलीज़ हो गया है. वर्शन 1.2.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
नेविगेशन 3 में अब DeepLinkRequest और DeepLinkMatcher के साथ डीप लिंक काम करते हैं:
DeepLinkRequestएक ऐसा डीप लिंक है जिसमेंDeepLinkUriऔर वैकल्पिक mimeType या कार्रवाई(सिर्फ़ Android के लिए) शामिल होती है. नई क्लास के साथ-साथ,uri,mimeTypeयाactionके साथ इंस्टेंस बनाने के लिए, कंपैनियन फ़ंक्शन भी उपलब्ध हैं. Android प्लैटफ़ॉर्म पर, इंटेंट से अनुरोध बनाने के लिए भी एक हेल्पर होता है. (Iaaac9, b/470282247)val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home") val uriAndMimeRequest = DeepLinkRequest.fromUriString( "https://sampledeeplink.com/user/profile?id=123", "image/png" )DeepLinkMatcherएक ऐसा डीप लिंक दिखाता है जिसेDeepLinkRequestसे मैच किया जा सकता है. हर मैच करने वाला इंस्टेंस, उस नेविगेशन कुंजी से जुड़ा होता है जो इस डीप लिंक के साथ काम करती है. किसी नेविगेशन कुंजी को एक से ज़्यादा मैचर से जोड़ा जा सकता है.DeepLinkMatcher.matchको कॉल करने पर,MatchResultमिलेगा. अगर मैच हो जाता है, तो इसमें नेविगेशन की से जुड़ी जानकारी होगी. डिफ़ॉल्ट तौर पर,DeepLinkMatcherको दो तरीके से लागू किया जाता है:UriDeepLinkMatcherका इस्तेमाल, यूआरआई के आधार पर डीप लिंक मैच करने के लिए किया जाता है. वहीं,StaticKeyDeepLinkMatcherका इस्तेमाल, सिर्फ़DeepLinkMatcher.Filterवाले डीप लिंक मैच करने के लिए किया जाता है. येBooleanसे मैच करते हैं. (I3798e, b/470282247)UriDeepLinkMatcher,DeepLinkMatcherको लागू करने का एक तरीका है. यहDeepLinkUriको Serializable नेविगेशन कुंजी से मैच करके डीप लिंक को हैंडल करता है. यह प्रिमिटिव टाइप या प्रिमिटिव के कलेक्शन के डीप लिंक आर्ग्युमेंट के साथ काम करता है. जैसे, सूचियां, ऐरे, और सेट. (I1520b, b/470282247)@Serializable data class UserKey(val id: Int): NavKey // declare a deep link supported by UserKey val userMatcher = UriDeepLinkMatcher( uriPattern = "www.sampledeeplink.com/user?userId={id}", serializer = serializer<UserKey>() ) // handle a requested deep link with fallback key val key = userMatcher.match(deepLinkRequest)?.key ?: HomeKeyDeepLinkUriजोड़ा गया. यहandroid.net.Uriका Kotlin-multiplatform वर्शन है (Id4725, b/470282247)
एपीआई में हुए बदलाव
- Compose के compileSdk से मैच करने के लिए,
compileSdk 37पर ले जाया गया
गड़बड़ियां ठीक की गईं
- एक से ज़्यादा ओवरले दिखाने पर,
AnimatedBottomSheetSampleकेIllegalArgumentExceptionकी समस्या ठीक की गई है. अब सैंपलSceneStrategy, आखिरी नॉन-OverlaySceneका सही हिसाब लगाएगा और उसे सभी ओवरले सीन के नीचे दिखाएगा. (If2281, b/506733412) NavigationEventडिपेंडेंसी को 1.1.1 पर अपग्रेड किया गया है. इससे, जांच मोड में NavigationEventHandler को हटाया जा सकता है, ताकि Android Studio के प्रीव्यू में Predictive Back की सुविधा चालू की जा सके. (I487fd)
वर्शन 1.2.0-alpha02
22 अप्रैल, 2026
androidx.navigation3:navigation3-*:1.2.0-alpha02 रिलीज़ हो गया है. वर्शन 1.2.0-alpha02 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
onBackका नाम बदलकरonBackCompletedकरें. साथ ही, पीछे जाने के रद्द किए गए जेस्चर को हैंडल करने की सुविधा के लिए, NavigationBackHandler मेंonBackCancelledजोड़ें. (I92741)SceneStateका इस्तेमाल करते समय, पीछे जाने के जेस्चर और प्रिडिक्टिव बैक को आसानी से हैंडल करने के लिए,NavigationBackHandlerजोड़ें. इससे डेवलपर, कस्टम यूआई कॉम्पोनेंट को आसानी से बना सकते हैं. ये कॉम्पोनेंट, स्टैंडर्ड पीछे जाने की प्रोसेस और अनुमान लगाने वाले जेस्चर के साथ काम करते हैं. इसके लिए, उन्हें पिछली गतिविधियों के डेल्टा की मैन्युअल तरीके से गणना करने की ज़रूरत नहीं होती. (I6a055)- पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर को आसानी से कनेक्ट करने के लिए,
rememberNavigationEventStateजोड़ेंSceneState. (Iae49c)
नई सुविधाएं
ResultEventBusएपीआई जोड़ा गया है, ताकिResultEventBusNavEntryDecoratorकी ओर से उपलब्ध कराए गएLocalResultEventBusकी मदद से, NavEntries के बीच नतीजे पास किए जा सकें. नतीजों में पास किए गए टेस्ट कोResultEventBus#conflateAsStateके साथ स्थिति के तौर पर याResultEffectके साथ नतीजों के फ़्लो के तौर पर आंका जा सकता है.
वर्शन 1.2.0-alpha01
08 अप्रैल, 2026
androidx.navigation3:navigation3-*:1.2.0-alpha01 रिलीज़ हो गया है. वर्शन 1.2.0-alpha01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
OverlaySceneसेLocalNavAnimatedContentScopeको ऐक्सेस करने पर, अबIllegalStateExceptionनहीं होगा. ऐसा इसलिए, क्योंकिOverlayScenesको अब नो-ऑपLocalAnimatedContentScopeके साथ उपलब्ध कराया जाता है. (I2f00c, b/486067688)
Navigation3 वर्शन 1.1
वर्शन 1.1.7
26 अगस्त, 2026
androidx.navigation3:navigation3-*:1.1.7 रिलीज़ हो गया है. वर्शन 1.1.7 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक किया गया है जिसकी वजह से फ़ॉरवर्ड ट्रांज़िशन के दौरान ट्रिगर किए गए, अनुमान लगाकर बैक जेस्चर करने की सुविधा के तहत, स्वाइप की प्रोग्रेस के हिसाब से ऐनिमेशन नहीं होता था. पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर अब ऐनिमेट होगा और ठीक से पूरा होगा. (Icdcb0, b/456218398)
वर्शन 1.1.6
12 अगस्त, 2026
androidx.navigation3:navigation3-*:1.1.6 रिलीज़ हो गया है. वर्शन 1.1.6 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
NavEntry.contentKeyअब डिफ़ॉल्ट रूप सेkey.toString()औरkey::class.toString()का कंपोज़िट होता है. इससे यह पक्का होता है कि एक ही नाम वाले, लेकिन अलग-अलग इंटरफ़ेस लागू करने वाले डेटा ऑब्जेक्ट में अब एक जैसाcontentKeyनहीं होगा. हालांकि, JS प्लैटफ़ॉर्म काkey::class, पूरी तरह क्वालिफ़ाइड नाम के बजाय सिर्फ़ क्लास का सामान्य नाम दिखाता है. इसलिए, JS प्लैटफ़ॉर्म को अब भी डुप्लीकेट नामों वाले डेटा ऑब्जेक्ट के लिए, कस्टमcontentKeyलागू करना चाहिए. (I1fbbb, b/512534342)- ठीक किया गया:
IllegalArgumentException,SaveableStateHolderसे थ्रो किया गया. यह समस्या तब होती थी, जब बैक स्टैक से तेज़ी से पॉप अप होने की वजह से, एक साथ कई पॉप ट्रांज़िशन हो रहे हों. (I4d728, b/516312097)
वर्शन 1.1.5
29 जुलाई, 2026
androidx.navigation3:navigation3-*:1.1.5 रिलीज़ हो गया है. वर्शन 1.1.5 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
entryProviderडीएसएल अबNavEntryको प्राथमिकता देता है, जिसे किसी मुख्य इंस्टेंस के साथ बनाया गया है. उदाहरण के लिए,entry(key = userKey) { ... }कोNavEntryपर प्राथमिकता दी जाती है, जिसे किसी मुख्य क्लास के साथ बनाया गया है, जैसे किentry<UserKey>{ ... }.(Ib5ec9, b/533331924)
वर्शन 1.1.4
01 जुलाई, 2026
androidx.navigation3:navigation3-*:1.1.4 रिलीज़ हो गया है. वर्शन 1.1.4 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- ऐसी एंट्री पर पॉप करने पर, पॉप की गई एंट्री तुरंत गायब हो जाती थी जिसमें लैम्ब्डा वैल्यू वाला नेस्ट किया गया मेटाडेटा होता था. इस समस्या को ठीक कर दिया गया है. (Idb872, b/520494430)
वर्शन 1.1.3
17 जून, 2026
androidx.navigation3:navigation3-*:1.1.3 रिलीज़ हो गया है. वर्शन 1.1.3 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
ओवरले ऐनिमेशन से जुड़ी समस्या को ठीक किया गया है. इसमें, नेस्ट किए गए ओवरले (जैसे,
ModalBottomSheet) के ऊपर मौजूद ओवरले के बंद होने पर, वे अचानक से फिर से ऐनिमेट होने लगते थे. (Ia2b9e, b/502624496)NavigationEventडिपेंडेंसी को 1.1.2 पर अपग्रेड किया गया है. इससे, Android Studio Previews में Predictive Back की सुविधा चालू करने के लिए, जांच मोड मेंNavigationEventHandlerको नो-ऑप के तौर पर हटाने की सुविधा मिली है.
वर्शन 1.1.2
19 मई, 2026
androidx.navigation3:navigation3-*:1.1.2 रिलीज़ हो गया है. वर्शन 1.1.2 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
NavigationEventडिपेंडेंसी को 1.1.1 पर ले जाया गया है. इससे, Android Studio Previews में Predictive Back की सुविधा चालू करने के लिए, जांच मोड मेंNavigationEventHandlerको नो-ऑप के तौर पर हटा दिया गया है.
वर्शन 1.1.1
22 अप्रैल, 2026
androidx.navigation3:navigation3-*:1.1.1 रिलीज़ हो गया है. वर्शन 1.1.1 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
OverlaySceneसेLocalNavAnimatedContentScopeको ऐक्सेस करने पर, अबIllegalStateExceptionनहीं होगा. ऐसा इसलिए, क्योंकिOverlayScenesको अब नो-ऑपLocalAnimatedContentScopeके साथ उपलब्ध कराया जाता है. (I2f00c, b/486067688)
वर्शन 1.1.0
08 अप्रैल, 2026
androidx.navigation3:navigation3-*:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये बदलाव शामिल हैं.
1.1.0 अब स्टेबल है!
1.0.0 के बाद हुए अहम बदलाव
सीन के बीच शेयर किए गए एलिमेंट
- Navigation3 अब सीन को शेयर किए गए एलिमेंट ऑब्जेक्ट के तौर पर इस्तेमाल करने की सुविधा देता है. इसका मतलब है कि सीन बदलते समय, यह पक्का किया जा सकता है कि वे आसानी से बदलें. इसे चालू करने के लिए, SharedTransitionScope को NavDisplay या rememberSceneState पर पास करें.
SceneDecoratorStrategy
- SceneDecoratorStrategy को इसलिए पेश किया गया है, ताकि यूज़र इंटरफ़ेस (यूआई) के सामान्य कॉम्पोनेंट से सीन को सजाने या अलग-अलग सीन के बीच स्थिति शेयर करने जैसे इस्तेमाल के उदाहरणों को सपोर्ट किया जा सके.
NavMetadata DSL
- Navigation3 अब टाइप-सेफ़ मेटाडेटा डीएसएल उपलब्ध कराता है. डीएसएल, नए MetadataKey इंटरफ़ेस का इस्तेमाल करता है. इससे, वे कुंजी और वैल्यू टाइप तय कर सकते हैं जिन्हें उन्हें मेटाडेटा मैप में देना है. इसमें NavDisplay ट्रांज़िशन के लिए नए NavMetadataKeys भी जोड़े गए हैं, ताकि इनका इस्तेमाल नए मेटाडेटा डीएसएल के साथ किया जा सके. इससे NavDisplay में ट्रांज़िशन जोड़े जा सकते हैं.
OverlayScene ऐनिमेशन
- OverlayScene इंटरफ़ेस में, onRemoved सस्पेंड करने के लिए नया कॉलबैक है. इस कॉलबैक को तब शुरू किया जाता है, जब सीन से जुड़ी कोई कुंजी बैकस्टैक से हटा दी जाती है. हालांकि, ऐसा कंपोज़िशन से बाहर निकलने से पहले होता है. इससे onRemoved में कॉल किए गए एग्ज़िट ऐनिमेशन को पूरा होने का समय मिलता है. इसके बाद, ओवरले सीन को कंपोज़िशन से हटा दिया जाता है.
अन्य बदलाव
- NavDisplay और rememberSceneState अब List<SceneStrategy> पैरामीटर का इस्तेमाल करते हैं. पहले, ये SceneStrategy पैरामीटर का इस्तेमाल करते थे. then इनफ़िक्स की मदद से, पैरामीटर को एक साथ जोड़ा जाता था.
अब EntryProvider डीएसएल के ज़रिए, एंट्री पासकोड के हिसाब से मेटाडेटा को डाइनैमिक तरीके से जोड़ा जा सकता है.
वर्शन 1.1.0-rc01
25 मार्च, 2026
androidx.navigation3:navigation3-*:1.1.0-rc01 रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
NavDisplayअब यह पक्का करता है कि ओवरले के नीचे दिखने वाली एंट्री के लिए,Lifecycleकी सीमाSTARTEDपर सेट हो. इससे यह पक्का होता है कि डायलॉग का इस्तेमाल करते समय,dropUnlessResumedजैसे एपीआई काम करते रहें. (If209f, b/483966071)NavDisplayमें एक समस्या ठीक की गई है. इसमें एक ही स्क्रीन के बीच आगे-पीछे नेविगेट करने और दोनों के बीच ऐनिमेशन में रुकावट आने की वजह से, स्क्रीन का z-ऑर्डर गलत हो सकता था. (I4d491, b/459419800)
वर्शन 1.1.0-beta01
11 मार्च, 2026
androidx.navigation3:navigation3-*:1.1.0-beta01 रिलीज़ हो गया है. वर्शन 1.1.0-beta01 में ये बदलाव शामिल हैं.
वर्शन 1.1.0-alpha05
25 फ़रवरी, 2026
androidx.navigation3:navigation3-*:1.1.0-alpha05 रिलीज़ हो गया है. वर्शन 1.1.0-alpha05 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
NavDisplayऔरrememberSceneStateअबthenइनफ़िक्स से चेन किए गए पिछले सिंगलSceneStrategyपैरामीटर के बजाय,List<SceneStrategy>पैरामीटर का इस्तेमाल करते हैं. यहList<SceneDecoratorStrategy<T>>के साथ ज़्यादा बेहतर तरीके से काम करता है. इन दोनों एपीआई में पहले से ही का इस्तेमाल किया जाता है. पिछले एपीआई बंद कर दिए गए हैं. (I78b2c, b/482108465)- मेटाडेटा #contains ऑपरेटर जोड़ा गया है. इससे यह पता चलेगा कि मेटाडेटा मैप में दिया गया
NavMetadataKeyमौजूद है या नहीं. (Ic30db, b/485311895) - मेटाडेटा डीएसएल के साथ इस्तेमाल करने के लिए,
DialogSceneStrategyके लिएNavMetadataKeyDialogKeyजोड़ा गया. (Ic7a26, b/483388817)
वर्शन 1.1.0-alpha04
11 फ़रवरी, 2026
androidx.navigation3:navigation3-*:1.1.0-alpha04 रिलीज़ हो गया है. वर्शन 1.1.0-alpha04 में ये बदलाव शामिल हैं.
नई सुविधाएं
- Navigation3 अब टाइप-सेफ़ मेटाडेटा डीएसएल उपलब्ध कराता है. डीएसएल, नए
MetadataKeyइंटरफ़ेस का इस्तेमाल करता है. इससे, वे कुंजी और वैल्यू टाइप तय कर सकते हैं जिन्हें उन्हें मेटाडेटा मैप में देना है. इससेNavDisplayट्रांज़िशन के लिए नएNavMetadataKeyभी जोड़े गए हैं, ताकि इनका इस्तेमाल नएmetadataडीएसएल के साथ किया जा सके. इससेNavDisplayमें ट्रांज़िशन जोड़े जा सकते हैं. (Ic10ef, Ic049c,b/476213928)
एपीआई में हुए बदलाव
OverlaySceneइंटरफ़ेस में,onRemovedनिलंबित करने के लिए नया कॉलबैक है. इस कॉलबैक को तब शुरू किया जाता है, जब सीन से जुड़ी कोई कुंजी बैकस्टैक से हटा दी जाती है. हालांकि, ऐसा कंपोज़िशन से बाहर निकलने से पहले होता है. इससेonRemovedमें कॉल किए गए एक्ज़िट ऐनिमेशन पूरे हो जाते हैं. इसके बाद, ओवरले सीन को कंपोज़िशन से हटा दिया जाता है. (I29a72, b/440558061)SceneStrategyने डेकोरेशन फ़ंक्शन को एक नएSceneDecoratorStrategyमें अलग कर दिया है. सीन को बेहतर बनाने के लिए, इस नए इंटरफ़ेस का इस्तेमाल किया जाना चाहिए.NavDisplayऔरrememberSceneStateके लिए नए एपीआई उपलब्ध हैं. इनकी मदद से,SceneDecoratorStrategiesको जोड़ा जा सकता है. (If9385, b/477669607, b/477670333)
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जिसमें
SharedTransitionLayoutकोNavDisplayयाrememberSceneStateमें पास करने और किसी भीOverlaySceneका इस्तेमाल करने पर क्रैश हो जाता था. ऐसा इसलिए होता था, क्योंकिSharedTransitionLayoutका इस्तेमाल सिर्फ़ उनNavEntriesके साथ किया जा सकता है जिन्हेंAnimatedContentके हिस्से के तौर पर रेंडर किया जाता है. साथ ही,OverlaySceneको अलग-अलग विंडो में रेंडर किया जाता है. (I1bb76, b/478664101)
डिपेंडेंसी अपडेट
Navigation31.0.1 से:Navigation3अबNavigationEvent1.0.2 पर निर्भर करता है. इससेAndroidStudioके टीज़र देखते समय,NavDisplayका इस्तेमाल करने की वजह से हुईIllegalStateExceptionठीक हो जाती है. (Id7212, b/477149762)
वर्शन 1.1.0-alpha03
28 जनवरी, 2026
androidx.navigation3:navigation3-*:1.1.0-alpha03 रिलीज़ हो गया है. वर्शन 1.1.0-alpha03 में ये बदलाव शामिल हैं.
नई सुविधाएं
- अब
EntryProviderडीएसएल के ज़रिए, एंट्री पासकोड के हिसाब से मेटाडेटा को डाइनैमिक तरीके से जोड़ा जा सकता है. (I942fb, b/474416976)
वर्शन 1.1.0-alpha02
14 जनवरी, 2026
androidx.navigation3:navigation3-*:1.1.0-alpha02 रिलीज़ हो गया है. वर्शन 1.1.0-alpha02 में ये बदलाव शामिल हैं.
नई सुविधाएं
SceneStrategyमें अब नएcalculatedScene(Scene)फ़ंक्शन की मदद से, सीन को नेस्ट करने की सुविधा उपलब्ध है. इसका मतलब है किSceneStrategyको पसंद के मुताबिक बनाया जा सकता है, ताकि अन्य सीन में ज़्यादा सुविधाएं मिल सकें. (I5df7c,b/440333896)
वर्शन 1.1.0-alpha01
03 दिसंबर, 2025
androidx.navigation3:navigation3-*:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
Navigation3अब सीन को शेयर किए गए एलिमेंट ऑब्जेक्ट के तौर पर इस्तेमाल करने की सुविधा देता है. इसका मतलब है कि सीन बदलते समय, यह पक्का किया जा सकता है कि वे आसानी से बदलें. इसे चालू करने के लिए,SharedTransitionScopeकोNavDisplayयाrememberSceneStateपर पास करें. (I15868)
संस्करण 1.0
वर्शन 1.0.1
11 फ़रवरी, 2026
androidx.navigation3:navigation3-*:1.0.1 रिलीज़ हो गया है. वर्शन 1.0.1 में ये बदलाव शामिल हैं.
डिपेंडेंसी अपडेट
Navigation3अबNavigationEvent1.0.2 पर निर्भर करता है. इससेAndroidStudioके टीज़र देखते समय,NavDisplayका इस्तेमाल करने की वजह से हुईIllegalStateExceptionठीक हो जाती है. (Id7212, b/477149762)
वर्शन 1.0.0
19 नवंबर, 2025
androidx.navigation3:navigation3-*:1.0.0 रिलीज़ हो गया है. वर्शन 1.0.0 में ये बदलाव शामिल हैं.
पेश है Navigation3!
- Navigation3 लाइब्रेरी अब स्टेबल हो गई है! Navigation3, AndroidX Compose में नेविगेशन का पहला तरीका है.
- ज़्यादा जानकारी के लिए, सूचना वाली हमारी ब्लॉग पोस्ट पढ़ें. साथ ही, संसाधन पर जाएं और रेसिपी आज़माएं.
वर्शन 1.0.0-rc01
05 नवंबर, 2025
androidx.navigation3:navigation3-*:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
NavDisplayअबSceneलेवल परLocalLifecycleOwnerसेट करता है. इससे सीन के लेखक यह तय कर पाते हैं कि सभी ट्रांज़िशन पूरे हो गए हैं या नहीं. इसके लिए, उन्हें यह देखना होता है किLifecycle.StateRESUMEDहै या नहीं.NavEntryलेवल परLocalLifecycleOwnerका व्यवहार पहले जैसा ही है: ट्रांज़िशन जारी रहने पर, यहSTARTEDपर भी सीमित रहता है. साथ ही, अगर उसNavEntryको बैक स्टैक से पॉप किया गया है और वह ऐनिमेशन से बाहर निकलने की प्रोसेस में है, तो यहCREATEDपर भी सीमित रहता है. (I03113, b/454045829)
वर्शन 1.0.0-beta01
22 अक्टूबर, 2025
androidx.navigation3:navigation3-*:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
SceneStrategyScopeमें अब सिर्फ़ नो-आर्ग्युमेंट पब्लिक कंस्ट्रक्टर है. यह आपकेSceneStrategyऔर अलग से दिखाए गएSceneकी जांच करने के लिए सही है. ज़्यादा जटिल इस्तेमाल के उदाहरणों के लिए, कृपयाrememberSceneState()का इस्तेमाल करें. (I8440c, b/451679047)
गड़बड़ियां ठीक की गईं
SceneStrategyकोthenके साथ जोड़ने पर, इनफ़िनिट लूप की समस्या ठीक की गई. (Iba3f0, b/450323470)backStackकोNavDisplayसे स्वैप करने और ऐनिमेशन का इस्तेमाल करने पर, स्क्रीन के फ़्लिकर होने की समस्या को ठीक किया गया है. (Ief7b5, b/450967248)
वर्शन 1.0.0-alpha11
08 अक्टूबर, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha11 रिलीज़ हो गया है. वर्शन 1.0.0-alpha11 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
SceneStrategyपरcalculateSceneतरीका अब@Composableनहीं है. इसके बजाय, इस काम को अपनेSceneStrategyतरीके (यानी किrememberMySceneStrategy()तरीके में) के निर्माण में ले जाएं. इससे आपको सही वैल्यू के आधार पर, किसी भीrememberSaveableवैल्यू या मुख्यrememberस्टेटमेंट की जीवनकाल तय करने की पूरी अनुमति मिलती है. (If1733, b/448709506)SceneStrategy.calculateSceneके लिएonBackपैरामीटर कोSceneStrategyScopeके नए रिसीवर स्कोप में ले जाया गया है. इससे यह साफ़ तौर पर पता चलता है कि यह एक वैकल्पिक पैरामीटर है. साथ ही, इससे आने वाले समय में Navigation3 की सुविधाओं के लिए एक्सटेंशन पॉइंट उपलब्ध कराया जा सकेगा. (I3aea3, b/448460407)NavDisplayमें पास किया गयाonBackलैम्डा और आपकेSceneStrategyमें अबcount: Intपैरामीटर नहीं मिलता. इससे यह पता चलता है कि कई एंट्री कब पॉप अप होनी चाहिए. इसके बजाय, अब() -> Unitलैंबडा को एक के बाद एक कई बार कॉल किया जाएगा. ऐसा तब होगा, जब आपके सीन के अनुरोधों में कई एंट्री दिखेंगी. हालांकि, ऐसा बहुत कम होता है. (Idedb5, b/446989346)NavEntryWrapperक्लास को हटाएं और इसकी सुविधा को फ़ाइनलNavEntryक्लास से बदलें. इसमें एक नया सेकंडरी कंस्ट्रक्टर होता है, जो नए कॉन्टेंट के साथNavEntryलेता है. इससे, नई एंट्री को नए कॉन्टेंट के साथ रैप करने की सुविधा मिलती रहेगी. (I7da2a, b/444447130)navEntryDecoratorफ़ंक्शन को हटा दिया गया है. यह फ़ंक्शन,NavEntryDecoratorबनाता और दिखाता था. इसेNavEntryDecoratorक्लास से बदल दिया गया है. यह क्लास अब सार्वजनिक है और सबक्लासिंग के लिए उपलब्ध है. (If81f8, b/444447434, b/447381176)SavedStateNavEntryDecoratorका नाम बदलकरSaveableStateHolderNavEntryDecoratorकर दिया गया है, क्योंकि यहSaveableStateHolderके साथ एंट्री को डेकोरेट करता है. डेकोरेटर को फ़ंक्शन से क्लास में भी बदला गया है, क्योंकि यह फ़ंक्शन के तौर परNavEntryDecoratorके लिए फ़ैक्ट्री है. (Ie6013, b/447381176)NavDisplayके बजायSceneStateका इस्तेमाल करने वाले कस्टम डिसप्ले को अबLocalEntriesToRenderInCurrentSceneकंपोज़िशन लोकल का इस्तेमाल करने की ज़रूरत नहीं है. यह अब इंटरनल है. (Ic40ef, b/414668196)- सार्वजनिक एपीआई से
SceneSetupNavEntryDecoratorऔरrememberSceneSetupNavEntryDecorator()को हटा दिया गया है. यह सुविधा अब डिफ़ॉल्ट रूप से शामिल होती है. इसलिए, आपको इसे मैन्युअल तरीके से शामिल करने की ज़रूरत नहीं है. (Ieae42, b/444479133) NavEntry,DialogScene,SinglePaneScene, औरSceneStateअब सभी में equals लागू होता है. (I96121)- सीन इंटरफ़ेस में एक नया मेटाडेटा फ़ील्ड जोड़ा गया है. इसकी मदद से, NavDisplay के लिए सीन से जुड़ा मेटाडेटा अटैच किया जा सकता है. इससे किसी सीन को
NavDisplayपर मौजूद मेटाडेटा को बदलने की अनुमति मिलती है. उदाहरण के लिए, ट्रांज़िशन के साथ. (I1fd96, b/443955625) - सामान्य टाइप पैरामीटर को हटाकर,
rememberNavBackStackसिग्नेचर को आसान बनाएं. अब इस फ़ंक्शन मेंvararg elements: NavKeyका इस्तेमाल किया जा सकता है. (I03e45) NavDisplayके डिफ़ॉल्ट ऐनिमेशन अब सामान्य एपीआई का हिस्सा हैं. इससे उन्हें सभी प्लैटफ़ॉर्म से कॉल किया जा सकता है. (I71af9, b/447147159)EntryProviderBuilderका नाम बदलकरEntryProviderScopeकर दिया गया है, ताकि यह सही तरीके से पता चल सके कि क्लास एक Kotlin DSL है, जोNavEntriesबनाने का स्कोप देती है. (Ia7465)
गड़बड़ियां ठीक की गईं
rememberNavBackStack()अब NavKey के लिए पॉलीमॉर्फ़िक सीरियलाइज़ेशन लागू करता है. इसके लिए, कस्टमSavedStateConfigurationकी ज़रूरत होती है. इसे सही स्थिति को वापस लाने के लिए कॉन्फ़िगर किया जाता है. KDoc को अपडेट कर दिया गया है. इससे यह पता चलता है कि सभी NavKey सबटाइप को दिए गए SerializersModule में रजिस्टर करना ज़रूरी है. (I6de37,I782f2, b/446664383)
वर्शन 1.0.0-alpha10
24 सितंबर, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha10 रिलीज़ हो गया है. वर्शन 1.0.0-alpha10 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
NavDisplayका नया ओवरलोड जोड़ें. यहNavEntry<T>की ऐसी सूची लेता है जिसेrememberDecoratedNavEntriesने सजाया है. (I4025b, b/441940314)DialogSceneको नए पैकेज में ट्रांसफ़र कर दिया गया है. (Ia5840)- सार्वजनिक एपीआई
DecorateNavEntryको हटाएं. इसके बजाय, डेकोरेटर की सूची के साथ NavEntry को रैप करने के लिएrememberDecoratedNavEntriesका इस्तेमाल करें. (Id8c09) - Navigation3 यूज़र इंटरफ़ेस (यूआई) अब नई डिफ़ॉल्ट
transitionSpecप्रॉपर्टी उपलब्ध कराता है. (Ibcabd) - सीन मैनेज करने के लिए, एक नया
SceneStateऑब्जेक्ट जोड़ा गया है. यह एक नयाNavDisplayओवरलोड भी उपलब्ध कराता है, जोSceneStateऔरNavigationEventStateलेता है. (Idfb46, b/444479133) NavDisplayअब आपकोTransitionऔरcurrentStateको देखकर,ScenetargetStateके आधार पर ट्रांज़िशन को पसंद के मुताबिक बनाने की सुविधा देता है. (I906cc, b/443872322)NavigationEventInfoअबinterfaceके बजायabstract classहै. सभी कस्टम लागू करने की प्रोसेस को क्लास से इनहेरिट करने के लिए अपडेट करें. जैसे,data class MyInfo : NavigationEventInfo(). (I1e59c, b/444734264)navigationevent-composeहैंडलर एपीआई अपडेट कर दिए गए हैं.NavigationEventHandlerऔरNavigationBackHandler(और वैरिएंट) अब एक नए ओवरलोड का इस्तेमाल करते हैं. यह ओवरलोड, ऊपर ले जाए गएNavigationEventStates को स्वीकार करता है. आसान ओवरलोड (currentInfoलेने वाले) को सुरक्षित रखा जाता है. साथ ही, अब वे इस नए स्टेट मॉडल का इस्तेमाल करते हैं. (Ic3251, b/444734264)- सभी Scene API को navigation3-ui से navigation3-runtime में ले जाया गया है. इसका मतलब है कि अब ये सुविधाएं, navigation3-runtime के साथ काम करने वाले सभी प्लैटफ़ॉर्म पर उपलब्ध हैं. (I431d0, b/444449993)
- सजाने के लिए,
NavEntryकी सूची लेने वाला नयाrememberDecoratedNavEntriesओवरलोड जोड़ा गया. इनपुट एंट्री को पहले से ही अन्य एंट्री डेकोरेटर के साथ सजाया जा सकता है. (I5a034, b/444230270) - navigation3 वाइल्डकार्ड टाइप पैरामीटर (I02540) हटाएं
entryProviderDSL के लिए, सामान्य टाइप को मैनेज करने की सुविधा को बेहतर बनाया गया है. अगर आपने पहलेandroidx.navigation3.runtime.entryइंपोर्ट किया था, तो अब ऐसा करने की ज़रूरत नहीं है. (I299fc)- Android पर, रिफ़्लेक्शन पर आधारित
NavBackStackSerializerओवरलोड को सीमित करें. इससे Android के अलावा अन्य प्लैटफ़ॉर्म पर, रनटाइम के दौरान अपने-आप होने वाले सीरियललाइज़ेशन की प्रोसेस में गड़बड़ियां होने से रोका जा सकता है. इसके लिए, मल्टीप्लैटफ़ॉर्म कोड मेंSavedStateConfigurationके एक्सप्लिसिट ओवरलोड का इस्तेमाल करना ज़रूरी है. (I73313, b/420443609) NavigationEventकेswipeEdgeको@IntDefबनाएं (Icee54, b/443950342)- Android के लिए,
NavBackStackके सीरियल में बदलने की सुविधा पर पाबंदी लगाएं. इससे Android के अलावा अन्य प्लैटफ़ॉर्म पर रनटाइम में होने वाली गड़बड़ियों को रोका जा सकता है. अलग-अलग प्लैटफ़ॉर्म पर स्थिति को सेव करने के लिए, साफ़ तौर परSavedStateConfigurationके साथrememberNavBackStackओवरलोड का इस्तेमाल करें. (I1e418, b/420443609)
गड़बड़ियां ठीक की गईं
- नेस्ट किए गए
NavDisplayमें एक ही चाइल्ड एंट्री होने पर, पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर के दौरान क्रैश होने की समस्या ठीक की गई. (I2cdc0, b/441933162)
वर्शन 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,NavigationEventलाइब्रेरी केLocalNavigationEventDispatcherOwnerके ज़रिए सेट किए गए किसी भी नेस्ट किए गएNavigationEventDispatcherOwnerको अनदेखा कर देता था. (I6224a)
डिपेंडेंसी में बदलाव
- Navigation3 अब NavigationEvent Alpha08 पर निर्भर करता है.
वर्शन 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 अपडेट
- AndroidX के लिए, डिफ़ॉल्ट minSdk को API 21 से API 23 पर ले जाया गया है (Ibdfca, b/380448311, b/435705964, b/435705223)
एपीआई में हुए बदलाव
SavedStateNavEntryDecoratorअब स्टेटस को सेव और वापस लाने के लिए,SaveableStateProviderमें पहले से मौजूदSaveableStateRegistryका इस्तेमाल करता है. (If8d9a)predictivePopTransitionSpecको अब स्वाइप एज को पैरामीटर के तौर पर दिया जाता है. इससे, ट्रांज़िशन को अपनी पसंद के मुताबिक बनाया जा सकता है. यह इस बात पर निर्भर करता है कि उपयोगकर्ता ने अनुमानित बैक जेस्चर किस एज से शुरू किया था. (I753a8)
गड़बड़ियां ठीक की गईं
- उस समस्या को ठीक कर दिया गया है जिसकी वजह से कस्टम सीन को बार-बार रीफ़्रेश करना पड़ता था. ऐसा इसलिए होता था, क्योंकि सबसे हाल ही के सीन को याद नहीं रखा जाता था. (I7ba84, b/418153031)
डिपेंडेंसी अपडेट करना
- Navigation3 अब नेविगेशन इवेंट
1.0.0-alpha06पर निर्भर करता है.
वर्शन 1.0.0-alpha06
30 जुलाई, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha06 रिलीज़ हो गया है. वर्शन 1.0.0-alpha06 में ये बदलाव शामिल हैं.
डिपेंडेंसी अपडेट
- Navigation3 अब नेविगेशन इवेंट
1.0.0-alpha05पर निर्भर करता है.
वर्शन 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 एपीआई के ज़रिए यूज़र इंटरफ़ेस (यूआई) लेयर उपलब्ध कराता है. डेवलपर, 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 गाइड देखें.