navigation3
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 19 मई, 2026 | 1.1.2 | - | - | 1.2.0-alpha03 |
डिपेंडेंसी का एलान करना
navigation3 पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha03" implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha03" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha03") implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha03") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
इस आर्टफ़ैक्ट के लिए कोई रिलीज़ नोट नहीं है.
Navigation3 वर्शन 1.2
वर्शन 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को सीरियल किए जा सकने वाले नेविगेशन कुंजी से मैच करके डीप लिंक को हैंडल करता है. यह प्रिमिटिव टाइप या प्रिमिटिव के कलेक्शन के डीप लिंक आर्ग्युमेंट के साथ काम करता है. जैसे, सूचियां, ऐरे, और सेट. (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 पर ले जाया गया है. इससे, जांच मोड में होने पर no-op NavigationEventHandler हट जाता है. इससे Android Studio Previews में 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का इस्तेमाल करते समय, पीछे जाने के जेस्चर और प्रिडिक्टिव बैक को आसानी से हैंडल करने के लिए,NavigationBackHandlerजोड़ें.SceneStateइससे डेवलपर, कस्टम यूआई कॉम्पोनेंट आसानी से बना सकते हैं. ये कॉम्पोनेंट, स्टैंडर्ड बैक नेविगेशन और अनुमान लगाने वाले जेस्चर के साथ काम करते हैं. इसके लिए, उन्हें बैक स्टैक डेल्टा की मैन्युअल तरीके से गणना करने की ज़रूरत नहीं होती. (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.2
19 मई, 2026
androidx.navigation3:navigation3-*:1.1.2 रिलीज़ हो गया है. वर्शन 1.1.2 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
NavigationEventकी डिपेंडेंसी को 1.1.1 पर अपग्रेड किया गया है. इससे, Android Studio के प्रीव्यू में 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 अब टाइप-सेफ़ मेटाडेटा DSL उपलब्ध कराता है. डीएसएल, नए MetadataKey इंटरफ़ेस का इस्तेमाल करता है. इससे, वे मुख्य और वैल्यू टाइप तय कर सकते हैं जिन्हें उन्हें मेटाडेटा मैप में देना है. इसमें NavMetadataKeys के लिए नए NavDisplay ट्रांज़िशन भी जोड़े गए हैं, ताकि इनका इस्तेमाल नए मेटाडेटा डीएसएल के साथ किया जा सके. इससे NavDisplay में ट्रांज़िशन जोड़े जा सकते हैं.
OverlayScene ऐनिमेशन
- OverlayScene इंटरफ़ेस में, निलंबित करने के लिए नया onRemoved कॉलबैक है. इस कॉलबैक को तब शुरू किया जाता है, जब सीन से जुड़ी कोई कुंजी बैकस्टैक से हटा दी जाती है. हालांकि, ऐसा कंपोज़िशन से बाहर निकलने से पहले होता है. इससे onRemoved में कॉल किए गए एग्ज़िट ऐनिमेशन पूरे हो जाते हैं. इसके बाद, ओवरले सीन को कंपोज़िशन से हटा दिया जाता है.
अन्य बदलाव
- NavDisplay और rememberSceneState अब List<SceneStrategy> पैरामीटर का इस्तेमाल करते हैं. पहले, ये SceneStrategy पैरामीटर का इस्तेमाल करते थे. then इनफ़िक्स की मदद से, SceneStrategy पैरामीटर को एक साथ जोड़ा जाता था.
- अब 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>>के साथ ज़्यादा बेहतर तरीके से काम करता है. इन दोनों एपीआई में पहले से ही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और आपके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अब हर व्यक्ति को सहीLifecycle.Stateमें ले जाता है.NavEntry(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 गाइड देखें.