navigation3
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
8 अक्टूबर, 2025 | - | - | - | 1.0.0-alpha11 |
डिपेंडेंसी का एलान करना
navigation3 पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.0.0-alpha11" implementation "androidx.navigation3:navigation3-ui:1.0.0-alpha11" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha11") implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha11") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
इस आर्टफ़ैक्ट के लिए कोई रिलीज़ नोट नहीं है.
वर्शन 1.0
वर्शन 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
(और वैरिएंट) अब एक नए ओवरलोड का इस्तेमाल करते हैं. यह ओवरलोड, होस्ट किए गएNavigationEventState
s को स्वीकार करता है. सामान्य ओवरलोड (currentInfo
लेने वाले) को सुरक्षित रखा जाता है. साथ ही, अब वे इस नए स्टेट मॉडल का इस्तेमाल करते हैं. (Ic3251, b/444734264)- सभी सीन एपीआई को navigation3-ui से navigation3-runtime में ले जाया गया है. इसका मतलब है कि अब ये सुविधाएं, navigation3-runtime के साथ काम करने वाले सभी प्लैटफ़ॉर्म पर उपलब्ध हैं. (I431d0, b/444449993)
rememberDecoratedNavEntries
का नया ओवरलोड जोड़ा गया है. यह सजावट के लिएNavEntry
की सूची लेता है. इनपुट एंट्री को पहले से ही अन्य एंट्री डेकोरेटर के साथ सजाया जा सकता है. (I5a034, b/444230270)- navigation3 वाइल्डकार्ड टाइप पैरामीटर (I02540) हटाएं
entryProvider
DSL के लिए, जेनेरिक को मैनेज करने की सुविधा को बेहतर बनाया गया है. अगर आपने पहले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
अब हरNavEntry
को सहीLifecycle.State
पर ले जाता है. (I30aac, b/440145700)NavDisplay
के ज़रिए सेट किए गए किसी भी नेस्ट किए गएNavigationEventDispatcherOwner
कोNavigationEvent
लाइब्रेरी केLocalNavigationEventDispatcherOwner
से अनदेखा करने की समस्या को ठीक किया गया है. (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 गाइड देखें.