navigation3
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 09 सितंबर, 2026 | 1.1.7 | 1.2.0-rc01 | - | - |
डिपेंडेंसी का एलान करना
navigation3 पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha07" implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha07" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha07") implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha07") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
इस आर्टफ़ैक्ट के लिए, रिलीज़ नोट उपलब्ध नहीं हैं.
Navigation3 वर्शन 1.2
वर्शन 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 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
Map<String, Any>कोMap<String, Any>से बदलकर, टाइप सेफ़ मैप जैसी नई क्लासRequestExtrasकर दिया गया है. यहRequestExtrasKey<T>औरTके जोड़े सेव करती है.DeepLinkRequest.extrasRequestExtrasको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'sके लिए, टी की ऊपरी सीमा को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को पास किया जा सकता है. इससेResultEventBusकोResultEventBusNavEntryDecoratorके बाहर ले जाया जा सकता है. (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 जोड़ा गया है. डीएसएल,RequestExtrasKeyसेAnyके जोड़े सेव करने के लिएputफ़ंक्शन उपलब्ध कराता है.Map<String, Any>.get(key)एक्सटेंशन फ़ंक्शन का इस्तेमाल,RequestExtrasKey(I5091c, b/513200887) की मदद से मैप से डेटा पढ़ने के लिए किया जा सकता है - (सिर्फ़ Android के लिए)
ActionExtrasKeyकी मदद से,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, और उनके सबक्लास अब कोवेरिएंट T (आउट T) लेते हैं, ताकि Matchers के साथ इस्तेमाल किए जाने वाले हैरारिकल कुंजियों को टाइप कास्ट करने की ज़रूरत न पड़े. (I1e453, b/525094876)- आर्ग्युमेंट मैप के लिए
UriMatchResultकंस्ट्रक्टर पैरामीटर की डिफ़ॉल्ट वैल्यू अब खाली मैप पर सेट है. (I3acdd) DeepLinkMatcher.Filterऐब्स्ट्रैक्ट क्लास अब एक फ़ंक्शनल इंटरफ़ेस है.filterकंस्ट्रक्टर फ़ील्ड को हटा दिया गया है. इसके बजाय, इसे सीधे तौर पर सबक्लास में पास किया जाना चाहिए. (I9eb7d, b/522194187)
गड़बड़ियां ठीक की गईं
- ऐसी एंट्री पर पॉप करने पर, पॉप की गई एंट्री तुरंत गायब हो जाती थी जिसमें लैम्ब्डा वैल्यू वाला नेस्ट किया गया मेटाडेटा होता था. इस समस्या को ठीक कर दिया गया है. (Idb872, b/520494430)
UriDeepLinkMatcherको ठीक किया गया है, ताकि मैचिंग के दौरान ज़रूरी आर्ग्युमेंट मौजूद न होने पर,MissingFieldExceptionदिखाने के बजाय शून्यUriMatchResultदिखाए. (I5322f, b/524663005)UriDeeplinkMatcherमें मौजूद https स्कीम वाले यूआरआई को सिर्फ़ उन अनुरोधों से मैच किया जा सकता है जिनमें https स्कीम मौजूद हो. (Ibfe22, b/522304329)UriDeepLinkMatcherको ठीक करें, ताकिDeepLinkRequestकोUriDeepLinkMatcherसे मैच करते समय,httpस्कीम कोhttpsके साथ पॉज़िटिव मैच के तौर पर सही तरीके से पहचाना जा सके. (I3a62b, b/518804264)DeepLinkMatcher.MatchResultअब दो नतीजे बराबर होने पर, डिफ़ॉल्ट रूप से 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)NavigationBackHandlerका इस्तेमाल करते समय, पीछे जाने के जेस्चर और प्रिडिक्टिव बैक को आसानी से हैंडल करने के लिए,SceneStateजोड़ें. इससे डेवलपर, कस्टम यूआई कॉम्पोनेंट को आसानी से बना सकते हैं. ये कॉम्पोनेंट, स्टैंडर्ड पीछे जाने की प्रोसेस और अनुमान लगाने वाले जेस्चर के साथ काम करते हैं. इसके लिए, उन्हें पिछली गतिविधियों के डेल्टा की मैन्युअल तरीके से गिनती नहीं करनी पड़ती. (I6a055)- पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर को आसानी से कनेक्ट करने के लिए
SceneState,rememberNavigationEventStateजोड़ें. (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 की झलक में Predictive Back की सुविधा चालू करने के लिए, जांच मोड मेंNavigationEventHandlerको no-op के तौर पर हटाने की सुविधा मिलती है.
वर्शन 1.1.2
19 मई, 2026
androidx.navigation3:navigation3-*:1.1.2 रिलीज़ हो गया है. वर्शन 1.1.2 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
NavigationEventडिपेंडेंसी को 1.1.1 पर अपग्रेड किया गया है. इससे, Android Studio की झलक में अनुमानित बैक सुविधा चालू करने के लिए, जांच मोड में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 अब टाइप-सेफ़ मेटाडेटा DSL उपलब्ध कराता है. डीएसएल, नए MetadataKey इंटरफ़ेस का इस्तेमाल करता है. इससे, वे मुख्य और वैल्यू टाइप तय कर सकते हैं जिन्हें उन्हें मेटाडेटा मैप में देना है. इसमें NavMetadataKeys के लिए नए NavDisplay ट्रांज़िशन भी जोड़े गए हैं, ताकि इनका इस्तेमाल नए मेटाडेटा डीएसएल के साथ किया जा सके. इससे 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)
गड़बड़ियां ठीक की गईं
thenकोSceneStrategyके साथ जोड़ने पर, लगातार लूप की समस्या ठीक की गई. (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और आपकेSceneStrategyमें पास किया गयाonBackलैम्डा, अब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औरtargetStateको देखकर,Sceneके हिसाब से ट्रांज़िशन को पसंद के मुताबिक बनाया जा सकता है. (I906cc, b/443872322)NavigationEventInfoअबinterfaceके बजायabstract classहै. सभी कस्टम लागू करने की प्रोसेस को क्लास से इनहेरिट करने के लिए अपडेट करें. जैसे,data class MyInfo : NavigationEventInfo(). (I1e59c, b/444734264)navigationevent-composeहैंडलर एपीआई अपडेट किए गए हैं.NavigationEventHandlerऔरNavigationBackHandler(और वैरिएंट) अब एक नए ओवरलोड का इस्तेमाल करते हैं. यह ओवरलोड, ऊपर ले जाए गएNavigationEventStates को स्वीकार करता है. आसान ओवरलोड (currentInfoलेने वाले) को सुरक्षित रखा जाता है. साथ ही, अब वे इस नए स्टेट मॉडल का इस्तेमाल करते हैं. (Ic3251, b/444734264)- सभी सीन एपीआई को navigation3-ui से हटाकर navigation3-runtime में ले जाया गया है. इसका मतलब है कि अब ये सुविधाएं, navigation3-runtime के साथ काम करने वाले सभी प्लैटफ़ॉर्म पर उपलब्ध हैं. (I431d0, b/444449993)
rememberDecoratedNavEntriesका नया ओवरलोड जोड़ा गया है. यह सजावट के लिएNavEntryकी सूची लेता है. इनपुट एंट्री को, एंट्री डेकोरेटर की मदद से पहले से ही सजाया जा सकता है. (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 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 गाइड देखें.