navigation3
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 22 अप्रैल, 2026 | 1.1.1 | - | - | 1.2.0-alpha02 |
डिपेंडेंसी का एलान करना
navigation3 पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha02" implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha02" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha02") implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha02") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
इस आर्टफ़ैक्ट के लिए कोई रिलीज़ नोट नहीं है.
वर्शन 1.2
Navigation3
वर्शन 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.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>>के ज़्यादा करीब है, जिसे ये दोनों एपीआई पहले से ही लेते हैं. पिछले एपीआई बंद कर दिए गए हैं. (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)onBackलैंबडा कोNavDisplayऔर आपके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और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 के अलावा अन्य प्लैटफ़ॉर्म पर रनटाइम से जुड़ी गड़बड़ियों को रोका जा सकता है. एक से ज़्यादा प्लैटफ़ॉर्म पर स्टेट सेव करने के लिए,rememberNavBackStackको साफ़ तौर परSavedStateConfigurationके साथ ओवरलोड करें. (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को पास किए गए डेकोरेटर की मौजूदा सूची पर आधारित है. इसका मतलब है कि बैक स्टैक में NavEntries की स्थिति बनाए रखने के लिए, एक से ज़्यादा बैक स्टैक होने पर, डेकोरेटर को बैक स्टैक के साथ स्वैप किया जाना चाहिए. इसके अलावा, राज्यों को इस तरह से मिटा दिया जाएगा जैसे कि एंट्री को स्वैप करने के बजाय पॉप किया गया हो. (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 गाइड देखें.