navigationevent

  
Navigation Event लाइब्रेरी, सिस्टम बैक के साथ-साथ प्रिडिक्टिव बैक को मैनेज करने के लिए, KMP-first API उपलब्ध कराती है.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
22 अप्रैल, 2026 1.1.0 - - -

डिपेंडेंसी का एलान करना

navigationevent पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

dependencies {
    implementation "androidx.navigationevent:navigationevent:1.1.0"
}

Kotlin

dependencies {
    implementation("androidx.navigationevent:navigationevent:1.1.0")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

इस आर्टफ़ैक्ट के लिए कोई रिलीज़ नोट नहीं है.

वर्शन 1.1

वर्शन 1.1.0

22 अप्रैल, 2026

androidx.navigationevent:navigationevent-*:1.1.0 रिलीज़ हो गया है. वर्शन 1.1.0 में ये बदलाव शामिल हैं.

वर्शन 1.1.0-rc01

08 अप्रैल, 2026

androidx.navigationevent:navigationevent-*:1.1.0-rc01 रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Compose के compileSdk को API 37 पर अपडेट किया गया है. इसका मतलब है कि Compose का इस्तेमाल करते समय, AGP का कम से कम 9.2.0 वर्शन होना ज़रूरी है. (Id45cd, b/413674743)

वर्शन 1.1.0-beta01

27 मार्च, 2026

androidx.navigationevent:navigationevent-*:1.1.0-beta01 रिलीज़ हो गया है. वर्शन 1.1.0-beta01 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • NavigationEventDispatcher में OnForwardCompletedFallback जोड़ें. इससे, फ़ॉरवर्ड नेविगेशन के ऐसे इवेंट के लिए सिस्टम की डिफ़ॉल्ट सेटिंग लागू हो जाएगी जिन्हें हैंडल नहीं किया गया है. (Iac620, b/489138116)

वर्शन 1.1.0-alpha01

25 फ़रवरी, 2026

androidx.navigationevent:navigationevent-*:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • NavigationEvent-Compose में सभी Kotlin Multiplatform (KMP) टारगेट के लिए सहायता उपलब्ध है. मालिक की समस्या को LocalView से अलग करें, ताकि प्लैटफ़ॉर्म होस्ट, डिफ़ॉल्ट LocalNavigationEventDispatcherOwner उपलब्ध करा सकें. साथ ही, Android पर LocalView को सुरक्षित फ़ॉलबैक के तौर पर बनाए रख सकें. (Iae980, b/434940570, Iccf58)

एपीआई में हुए बदलाव

  • Android के BackEvent और NavigationEvent के बीच बदलने के लिए, NavigationEvent.toBackEvent() और BackEvent.toNavigationEvent() एक्सटेंशन फ़ंक्शन जोड़ें. (Ie3b71, b/477001292)

वर्शन 1.0

वर्शन 1.0.2

28 जनवरी, 2026

androidx.navigationevent:navigationevent-*:1.0.2 रिलीज़ हो गया है. वर्शन 1.0.2 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • Android Studio के प्रीव्यू वर्शन में NavigationEventHandler का इस्तेमाल करते समय होने वाली क्रैश की समस्या ठीक की गई है. अब हैंडलर, जांच मोड का पता लगाता है और कुछ नहीं करता. इससे झलक, उपलब्ध कराए गए डिस्पैचर के बिना रेंडर हो जाती है. (I370f2, b/454313986).

वर्शन 1.0.1

03 दिसंबर, 2025

androidx.navigationevent:navigationevent-*:1.0.1 रिलीज़ हो गया है. वर्शन 1.0.1 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • rememberNavigationEventDispatcherOwner() की मदद से बनाए गए चाइल्ड NavigationEventDispatcher को हटाने पर, यह कुकी ConcurrentModificationException को ठीक करती है. (ec68a9, b/454363524)

वर्शन 1.0.0

19 नवंबर, 2025

androidx.navigationevent:navigationevent-*:1.0.0 रिलीज़ हो गया है. वर्शन 1.0.0 में ये बदलाव शामिल हैं.

1.0.0 वर्शन की मुख्य सुविधाएं:

Navigation Event लाइब्रेरी अब स्टेबल हो गई है! Navigation Event, AndroidX लाइब्रेरी है. इसका इस्तेमाल, सिस्टम लेवल पर होने वाली इंटरैक्शन को मैनेज करने के लिए किया जाता है. जैसे, Android (और अन्य प्लैटफ़ॉर्म) में सिस्टम-बैक और अनुमानित बैक.

  • NavigationEvent को मैनेज करने के लिए, अपने NavigationEventHandler को लागू किया जा सकता है. इससे, ज़रूरी फ़ंक्शन को बदला जा सकता है. इसके बाद, आपको हैंडलर को NavigationEventDispatcher में जोड़ना होगा. Activity 1.12.0 रिलीज़ के बाद से, ComponentActivity में नया NavigationEventDispatcherOwner इंटरफ़ेस लागू किया गया है. यह इंटरफ़ेस, इस्तेमाल के लिए तैयार डिस्पैचर उपलब्ध कराता है :

    // The NavigationEventInfo provides information about a navigation state
    object CurrentInfo : NavigationEventInfo()
    
    // you can retrieve this from any component that is a NavigationEventDispatcherOwner
    // or you can instantiate your own custom dispatcher
    val dispatcher = myActivity.navigationEventDispatcher
    
    val myHandler = object : NavigationEventHandler<NavigationEventInfo>(
                initialInfo = CurrentInfo,
                isBackEnabled = true
            ) {
                override fun onBackStarted(event: NavigationEvent) {
                    // Prepare for the back event
                }
    
                override fun onBackProgressed(event: NavigationEvent) {
                    // Use event.progress for predictive animations
                }
    
                // This is the required method for final event handling
                override fun onBackCompleted() {
                    // Complete the back event
                }
    
                override fun onBackCancelled() {
                    // Cancel the back event
                }
            }
    
    dispatcher.addHandler(myHandler)
    
  • navigationevent:navigationevent-compose मॉड्यूल, कंपोज़ करने का आसान फ़ंक्शन NavigationBackHandler उपलब्ध कराता है. यह हैंडलर को सबसे नज़दीकी LocalNavigationEventDispatcherOwner के NavigationEventDispatcher से अपने-आप जोड़ देता है. साथ ही, डेवलपर को पैरामीटर के तौर पर मनमुताबिक व्यवहार तय करने की अनुमति देता है:

    object CurrentInfo : NavigationEventInfo()
    object PreviousInfo : NavigationEventInfo()
    
    val navEventState = rememberNavigationEventState(
      currentInfo = CurrentInfo,
      backInfo = PreviousInfo
    )
    
    // Inside composition
    NavigationBackHandler(
        State = navEventState,
        isBackEnabled = true,
        // optional
        onBackCancelled = { // Cancel the back event },
        // required
        onBackCompleted = { // Complete the back event } ,
    )
    

Compose में इस पैटर्न का इस्तेमाल करने से, NavigationEventState को ऊपर ले जाना और उसे अलग-अलग कंपोज़ेबल से मॉनिटर करना बहुत आसान हो जाता है. उदाहरण के लिए, Navigation3 के मामले में, जहां NavDisplay से बाहर की स्थिति को ऊपर ले जाया जा सकता है.

  • हर NavigationEventDispatcher के पास, कंपोज़ और नॉन-कंपोज़, दोनों मामलों के लिए पैरंट डिस्पैचर देने की सुविधा होती है. इससे डेवलपर को एक ऐसा पदानुक्रम बनाने की अनुमति मिलती है जिसमें कई डिस्पैचर को एक ही पैरंट मैनेज कर सकता है. पैरंट होने से, डिसपैचर के उन ग्रुप को मैनेज करना आसान हो जाता है जिन्हें बंद या हटाया जा सकता है:

    // Non-Compose
    val parentDispatcher = NavigationEventDispatcher()
    val childDispatcher = NavigationEventDispatcher(parent = parentDispatcher)
    
    // Compose
    val composeChildDispatcher = rememberNavigationEventDispatcher(
        // This defaults to `LocalNavigationEventDispatcherOwner.current`
        // Must explicitly provide null to have an unparented dispatcher created here
        parent = NavigationEventDispatch() 
    )
    
  • इस लाइब्रेरी की मदद से, NavigationEventDispatcher को सीधे तौर पर सिग्नल भेजे जा सकते हैं. इसके लिए, NavigationEventInput का इस्तेमाल किया जाता है. NavigationEventInputs, नेविगेशन सिस्टम के "इनपुट" के तौर पर काम करता है. यह प्लैटफ़ॉर्म के हिसाब से होने वाले इवेंट (जैसे, सिस्टम के बैक जेस्चर या बटन क्लिक) को स्टैंडर्ड इवेंट में बदलता है. इन इवेंट को NavigationEventDispatcher पर भेजा जा सकता है. फ़िलहाल, navigationevent:navigationevent मॉड्यूल दो NavigationEventInput उपलब्ध कराता है: एक सामान्य DirectNavigationEventInput, ताकि किसी भी इवेंट को भेजा जा सके. दूसरा, Android के लिए खास OnBackInvokedInput, ताकि NavigationEventDispatcher, सिस्टम बैक और अनुमानित बैक जेस्चर की सुविधा के साथ काम कर सके. अगर आपको ComponentActivity के दिए गए डिसपैचर के बजाय, अपना डिसपैचर इस्तेमाल करना है, तो आपको मैन्युअल तरीके से यह इनपुट जोड़ना होगा:

    val dispatcher = NavigationEventDispatcher()
    
    dispatcher.addInput(DirectNavigationEventInput())
    dispatcher.addInput(OnBackInvokedDefaultInput(invoker))
    

वर्शन 1.0.0-rc01

05 नवंबर, 2025

androidx.navigationevent:navigationevent-*:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये बदलाव शामिल हैं.

वर्शन 1.0.0-beta01

08 अक्टूबर, 2025

androidx.navigationevent:navigationevent-*:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • NavigationEvent.touchX और NavigationEvent.touchY के लिए, FloatRange एनोटेशन को ठीक करें. ये वैल्यू, पिक्सल के सटीक कोऑर्डिनेट दिखाती हैं. इनकी कोई 1.0 ऊपरी सीमा नहीं होती. (I4b205, b/445989313)
  • NavigationEventDispatcherOwner कंपोज़ेबल को rememberNavigationEventDispatcherOwner में बदल दो. अब यह फ़ंक्शन सीधे तौर पर NavigationEventDispatcherOwner दिखाता है. किसी सब-कंपोज़िशन के लिए इस मालिक की जानकारी देने के लिए, CompositionLocalProvider का इस्तेमाल करें. (I874b2, b/444446629)

वर्शन 1.0.0-alpha09

24 सितंबर, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha09 रिलीज़ हो गया है. वर्शन 1.0.0-alpha09 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • Idle() को इंस्टैंशिएट करने के बजाय, NavigationEventTransitionState.Idle सिंगलटन ऑब्जेक्ट का सीधे तौर पर इस्तेमाल करें. (Ic7d9e, b/444734264)
  • सुविधा देने वाले कंस्ट्रक्टर को इंटरनल बनाएं. सीधे कंस्ट्रक्शन के बजाय, सार्वजनिक NavigationEventDispatcher.history के ज़रिए इंस्टेंस पाएं. (I3b7e0, b/444734264)
  • rememberNavigationEventState के ज़रिए NavigationEventState बनाने की ज़रूरत होती है. कंस्ट्रक्टर अब इंटरनल है. (Ie143c, b/444734264)
  • onBackCompletedFallback को अपनाएं और fallbackOnBackPressed के इस्तेमाल और कंस्ट्रक्टर पैरामीटर को बदलें. व्यवहार में कोई बदलाव नहीं हुआ है. यह सिर्फ़ उन इवेंट पर लागू होता है जिनमें कॉन्टेंट लोड होने की प्रोसेस पूरी हो गई है और बैक बटन दबाने की कार्रवाई को हैंडल नहीं किया गया है. (Idabe9, b/444734264)
  • NavigationEventHistory(mergedHistory, currentIndex) का मुख्य कंस्ट्रक्टर अब internal है. बाहरी उपभोक्ताओं को इंस्टेंस बनाने के लिए, सार्वजनिक कंस्ट्रक्टर (खाली कंस्ट्रक्टर या पार्टीशन पर आधारित कंस्ट्रक्टर) का इस्तेमाल करना होगा. (I1c047, b/444734264)
  • View.setViewTreeNavigationEventDispatcherOwner को ऐसे मालिक को स्वीकार करने की अनुमति दें जो शून्य हो सकता है (Ic9eb6, b/444436762)
  • NavigationEventInfo अब interface के बजाय abstract class है. सभी कस्टम लागू करने की प्रोसेस को क्लास से इनहेरिट करने के लिए अपडेट करें.जैसे, data class MyInfo : NavigationEventInfo(). (I1e59c, b/444734264)
  • लेगसी NavigationEventDispatcher.state प्रॉपर्टी और getState<T>() फ़ंक्शन को हटा दिया गया है. जेस्चर की प्रोग्रेस के लिए, नए और अलग dispatcher.transitionState और नेविगेशन स्टैक के लिए dispatcher.history फ़्लो का इस्तेमाल करें. (Ic2ceb, b/444734264)
  • NavigationEventInput.onInfoChanged(...) कॉलबैक को बदल दिया गया है. एकल NavigationEventHistory ऑब्जेक्ट के तौर पर अपडेट पाने के लिए, नया onHistoryChanged(history: NavigationEventHistory) कॉलबैक लागू करें. (I23e0b, b/444734264)
  • नया ग्लोबल NavigationEventDispatcher.history StateFlow लॉन्च करें. इस नॉन-जेनेरिक फ़्लो की मदद से, ऑब्ज़र्वर सिर्फ़ नेविगेशन स्टैक में हुए बदलावों की सदस्यता ले सकते हैं. साथ ही, यह जेस्चर की प्रोग्रेस के दौरान स्थिर रहता है. यह transitionState का काउंटरपार्ट है. (I1db10, b/444734264)
  • नया ग्लोबल NavigationEventDispatcher.transitionState StateFlow लॉन्च करें. इस नॉन-जेनेरिक फ़्लो की मदद से, ऑब्ज़र्वर सिर्फ़ फ़िज़िकल जेस्चर की स्थिति (Idle/InProgress) की सदस्यता ले सकते हैं. यह सदस्यता, इतिहास से अलग होती है. (I171fa, b/444734264)
  • NavigationEventHistoryState क्लास के बारे में जानकारी दें. यह नेविगेशन की जानकारी के इतिहास को देखने के लिए मुख्य एपीआई के तौर पर काम करेगा. यह जेस्चर की स्थिति से अलग होगा. (I81ca5, b/444734264)
  • NavigationEvent को अब @Immutable के तौर पर मार्क किया गया है. इससे Compose कंपाइलर को, फिर से कंपोज़ करने की प्रोसेस को ऑप्टिमाइज़ करने में मदद मिलती है. (If78c7, b/444734264)
  • navigationevent-compose हैंडलर एपीआई अपडेट किए गए हैं. NavigationEventHandler और NavigationBackHandler (और वैरिएंट) अब एक नए ओवरलोड के साथ काम करते हैं. यह ओवरलोड, ऊपर ले जाए गए NavigationEventStates को स्वीकार करता है. सामान्य ओवरलोड (currentInfo लेने वाले) को सुरक्षित रखा जाता है. साथ ही, अब वे इस नए स्टेट मॉडल का इस्तेमाल करते हैं. (Ic3251, b/444734264)
  • navigationevent-compose लाइब्रेरी में नया @Stable NavigationEventState<T> स्टेट होल्डर जोड़ें. यह ऑब्जेक्ट, लोकल हिस्ट्री को लोकल जेस्चर की स्थिति के साथ जोड़ता है. साथ ही, यह rememberNavigationEventState और NavigationEventHandler के बीच मुख्य लिंक होगा. (Ifb69f, b/444734264)
  • NavigationEventHandler में नई सार्वजनिक, सिर्फ़ पढ़ने के लिए उपलब्ध transitionState: TransitionState प्रॉपर्टी जोड़ें. अब हैंडलर, ट्रांज़िशन की अपनी स्थिति बनाए रखते हैं. इसे बाहरी सिस्टम देख सकते हैं. (I9acd2, b/444734264)
  • पेश है नई TransitionState सील की गई क्लास. यह जेस्चर की स्थिति को मॉनिटर करने के लिए मुख्य एपीआई के तौर पर काम करेगा. यह नेविगेशन के इतिहास से अलग होगा. (Id4beb, b/444734264)
  • NavigationEventHandler पर currentInfo, backInfo, और forwardInfo को सार्वजनिक तौर पर, रीड-ओनली प्रॉपर्टी के तौर पर दिखाएं. (Ia7636, b/444734264)
  • NavigationEventHandler को लागू करने के लिए, अब बेस कंस्ट्रक्टर को initialInfo: T वैल्यू देनी होगी. (Idcfea, b/444734264)
  • OnBackInvokedInput को OnBackInvokedOverlayInput या OnBackInvokedDefaultInput से बदलें. (I5323f, b/428948766)
  • NavigationEventState को @Immutable के तौर पर मार्क करें. इससे Compose की परफ़ॉर्मेंस बेहतर होती है. ऐसा इसलिए होता है, क्योंकि इस स्थिति को मॉनिटर करने वाले कंपोज़ेबल, फिर से कंपोज़ करने की प्रोसेस को सही तरीके से स्किप कर सकते हैं. (I399c8)
  • NavigationEventInfo.NotProvided का नाम बदलकर NavigationEventInfo.None; करें और अपडेट किए गए रेफ़रंस का इस्तेमाल करें. कोई बदलाव नहीं किया गया. (I5e2d4)
  • NavigationEventInfo को अब @Immutable के तौर पर मार्क किया गया है. इससे Compose कंपाइलर को, फिर से कंपोज़ करने की प्रोसेस को ऑप्टिमाइज़ करने में मदद मिलती है. (I7c112)
  • बैक कंप्लीशन फ़ॉलबैक के लिए मज़ेदार इंटरफ़ेस की मदद से, Java एर्गोनॉमिक्स को बेहतर बनाएं. (I8a860)
  • onHasEnabledHandlerChanged का नाम बदलकर onHasEnabledHandlersChanged करें. इससे यह पता चलता है कि कॉलबैक, सिर्फ़ एक हैंडलर की स्थिति के बारे में नहीं, बल्कि सभी हैंडलर की स्थिति के बारे में रिपोर्ट करता है. (I1af61, b/443711297)
  • NavigationEventDispatcher; से hasEnabledHandler() को हटाएं. इसके बजाय, NavigationEventInput.onHasEnabledHandlersChanged का इस्तेमाल करें. (Idef72, b/443711297)
  • onInfoChanged में onInfoChanged कॉलबैक जोड़ें, ताकि सुनने वालों को नेविगेशन के इतिहास में हुए बदलावों के बारे में सूचना दी जा सके.NavigationEventInput इससे मौजूदा, बैक, और फ़ॉरवर्ड स्टैक का पूरा कॉन्टेक्स्ट मिलता है. इससे इनपुट, कॉन्टेक्स्ट के हिसाब से जानकारी पर प्रतिक्रिया दे पाते हैं. (I69a8b, b/443282983)
  • NavigationEvent के swipeEdge को @IntDef बनाएं (Icee54, b/443950342)
  • डिसपैचर को एक प्राथमिकता के दायरे में लाने के लिए, NavigationEventDispatcher.addInput में priority पैरामीटर जोड़ें. अब onHasEnabledCallbacksChanged जैसे इवेंट सिर्फ़ तब फ़ायर होते हैं, जब उस प्राथमिकता पर कॉलबैक बदलते हैं. (I3e488, b/443711297)
  • NavigationEventDispatcher पैरामीटर का नाम बदलकर parentDispatcher से पैरंट कर दिया गया है, ताकि इसे आसानी से समझा जा सके. (Id4f1f, b/443801782)
  • Java का इस्तेमाल करने वाले लोगों के लिए, NavigationEventPriority के बजाय @IntDef को इस्तेमाल करने की सुविधा जोड़ी गई (I10a9f, b/440514265)
  • नेविगेशन हैंडलर अनुबंध लागू करें. अगर आपके NavigationEventHandler ने isBackEnabled या isForwardEnabled को true पर सेट किया है, तो अब आपको onBackCompleted या onForwardCompleted को बदलना होगा. डिफ़ॉल्ट रूप से लागू किए गए फ़ंक्शन अब एक अपवाद दिखाते हैं, ताकि साइलेंट फ़ेलियर को रोका जा सके. (I17c62)
  • नेविगेशन इवेंट हैंडलर जोड़ते समय, प्राथमिकता की मान्य वैल्यू लागू करें. अब, प्राथमिकता के तौर पर ऐसे addHandler को कॉल करने पर IllegalArgumentException दिखेगा जो काम नहीं करता. इससे, सभी टारगेट प्लैटफ़ॉर्म पर गलत तरीके से इस्तेमाल करने के बारे में तुरंत सुझाव मिलेगा. (I3c474)

गड़बड़ियां ठीक की गईं

  • addHandler को आइडमपोटेंट बनाएं; डुप्लीकेट रजिस्ट्रेशन को अनदेखा करें. (I052aa, b/444734264)
  • रीकंपोज़िशन के दौरान, NavigationEventState प्रॉपर्टी को सिंक में रखें. (Ib3b4d, b/444734264)
  • पक्का करें कि NavigationEventInputs को रजिस्ट्रेशन के तुरंत बाद, मौजूदा कॉन्टेक्स्ट की जानकारी (मौजूदा, पीछे, आगे) मिल जाए. (Ie65bf, b/443282983)

वर्शन 1.0.0-alpha08

10 सितंबर, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha08 रिलीज़ हो गया है. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • लैंबडा पर आधारित NavigationEventHandler एपीआई लॉन्च किया गया है. यह फ़्लो पर आधारित हैंडलर की जगह लेगा. फ़्लो इकट्ठा करने के बजाय, सामान्य कॉलबैक की मदद से आगे और पीछे जाने के जेस्चर को हैंडल करें. इससे बॉयलरप्लेट कम हो जाता है और रद्द करने से जुड़ी समस्याओं से बचा जा सकता है. NavigationBackHandler और NavigationForwardHandler को टारगेट किए गए सुविधा एपीआई के तौर पर उपलब्ध कराएं. फ़्लो पर आधारित NavigationEventHandler को हटाएं; नए कॉलबैक पर माइग्रेट करें. (I23bac, b/436248277)
  • इससे, पैसिव लिसनर को बैक बटन दबाने पर दिखने वाली पूरी स्क्रीन का ऐक्सेस मिलता है. इसके लिए, बैक बटन दबाने पर दिखने वाली जानकारी को एक साथ दिखाया जाता है. साथ ही, यूज़र इंटरफ़ेस (यूआई) को सिर्फ़ सबसे ऊपर मौजूद कॉलबैक तक सीमित रखने के बजाय, झलकियां और नेस्ट किए गए नेविगेशन इतिहास को रेंडर करने की सुविधा मिलती है. (I7a510, b/436248277)
  • नेविगेशन की स्थिति को साफ़ तौर पर बताने के लिए, बैक/करंट/फ़ॉरवर्ड मॉडल पेश किया गया है. साथ ही, नेस्ट किए गए हैंडलर के साथ फ़ॉरवर्ड नेविगेशन की सुविधा दी गई है. (Ib86da, b/420443609)
  • NavigationEventCallback में onForward* तरीके और isForwardEnabled जोड़ें. (Ic100f, b/436248290)
  • NavigationEventInput में आगे बढ़ने की सुविधा जोड़ी गई. (I5734b)

एपीआई में हुए बदलाव

  • TestNavigationEventCallback का इस्तेमाल करके, फ़ॉरवर्ड नेविगेशन इवेंट की टेस्टिंग चालू करें. isForwardEnabled और onForward* हुक का इस्तेमाल करें. (I21fb5, b/420443609)
  • NavEvent में, onEvent* कॉलबैक का नाम बदलकर onBack* कर दें. (I228b3, b/436248290)
  • SwipeEdge को इनलाइन क्लास में बदलें. (Id5e01)
  • navigationevent लाइब्रेरी को Java के साथ इंटरोऑपरेबल बनाएं. अब सभी सार्वजनिक एपीआई को Java कोड से पूरी तरह से ऐक्सेस किया जा सकता है. इससे, इन्हें अलग-अलग भाषाओं या सिर्फ़ Java वाले प्रोजेक्ट में आसानी से इंटिग्रेट किया जा सकता है. (Ibc944,I5465f, I9fb1e, b/440532890b/443040294)
  • एपीआई की भूमिकाओं के बारे में ज़्यादा जानकारी देने के लिए, NavigationEventCallback का नाम बदलकर NavigationEventHandler कर दिया गया है. इस बदलाव से, मल्टी-स्टेज नेविगेशन के जेस्चर को हैंडल करने के लिए क्लास के मकसद के बारे में बेहतर तरीके से पता चलता है. इससे जुड़ा addCallback तरीका अब addHandler है. (I2492a, b/443040331)

गड़बड़ियां ठीक की गईं

  • फ़ॉरवर्ड नेविगेशन पर बैक फ़ॉलबैक को चलने से रोकता है. (I74814, b/436248290)
  • आगे बढ़ने पर झलक दिखाने की सुविधा जोड़ी गई. NavigationEvent अब एपीआई, पीछे और आगे जाने के लिए किए जाने वाले जेस्चर, दोनों को हैंडल करते हैं. इससे नेविगेशन की दोनों दिशाओं के लिए एक जैसे ऐनिमेशन चालू किए जा सकते हैं. (Idc98c, b/436248290)
  • जब किसी चाइल्ड NavigationEventDispatcherOwner को हटाया जाता है, तो रीकंपोज़िशन के दौरान IllegalStateException क्रैश होने से रोकता है. (Iff50c, b/412629020)
  • पैसिव लिसनर अब बैक स्टैक के पूरे नेविगेशन को ऐक्सेस कर सकते हैं. इसके लिए, उन्हें बैक बटन की जानकारी को एक साथ इस्तेमाल करना होगा. इससे यूज़र इंटरफ़ेस (यूआई), सबसे ऊपर मौजूद कॉलबैक तक सीमित रहने के बजाय, झलकियां और नेस्ट किए गए नेविगेशन के इतिहास को रेंडर कर पाएंगे. (I7a510, b/436248277)

वर्शन 1.0.0-alpha07

27 अगस्त, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha07 रिलीज़ हो गया है. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • NavigationEventDispatcher.onHasEnabledCallbacksChanged को हटाएं. (I50e97)
  • NavigationEventCallback.onEventCompleted() को ऐब्सट्रैक्ट बनाया गया. (I36b38)
  • NavigationEventCallback#on* तरीकों को protected में बदलें. इन्हें ओवरराइड करने के लिए, कॉलिंग कोड अपडेट करें. (I6b691)
  • DirectNavigationEventInput फ़ंक्शन का नाम बदलें. (Iffb62)
  • NavigationEventInput.onAttach का नाम बदलकर onAdded करें. (I2d0b8)
  • NavigationEventInput.onDetach का नाम बदलकर onRemoved करें. (I2d0b8)
  • NavigationEventInputHandler का नाम बदलकर NavigationEventInput करें. (I676a4)
  • NavigationEventInput.onHasEnabledCallbacksChanged में @EmptySuper जोड़ें. (If9853)
  • NavigationEventInputHandler में onAttach लागू करें. (I03648)
  • NavigationEventInputHandler में onDetach लागू करें. (I03648)
  • इसे बनाते समय, डिफ़ॉल्ट रूप से NavigationEventCallback पर सेट किया जाता है. (Ic0188)
  • NavigationEventInput.addOnHasEnabledCallbacksChangedCallback को NavigationEventInput.onHasEnabledCallbacksChanged से बदलें. (I64e93)
  • NavigationEventDispatcher.addInput के लिए मुख्य थ्रेड की ज़रूरत होती है. (Ic2930)
  • NavigationEventDispatcher.removeInput के लिए मुख्य थ्रेड की ज़रूरत होती है. (Ic2930)
  • Dispatcher.addOnHasEnabledCallbacksChangedCallback को हटाएं. Dispatcher.onHasEnabledCallbacksChanged से बदलें. (Ida3e3, b/436530096)

गड़बड़ियां ठीक की गईं

  • उस गड़बड़ी को ठीक किया गया है जिसमें पहले से अटैच किए गए हैंडलर को जोड़ने या अटैच नहीं किए गए हैंडलर को हटाने पर, लाइफ़साइकल की गलत लॉजिक ट्रिगर होती थी. (I9e47b)

वर्शन 1.0.0-alpha06

13 अगस्त, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha06 रिलीज़ हो गया है. वर्शन 1.0.0-alpha06 में ये बदलाव शामिल हैं.

नई सुविधाएं

Passive Listeners API

अब किसी भी नेविगेशन होस्ट से कॉन्टेक्स्ट के हिसाब से कस्टम जानकारी पास की जा सकती है. साथ ही, यूज़र इंटरफ़ेस (यूआई) में कहीं से भी जेस्चर की स्थिति में होने वाले बदलावों को पैसिव तरीके से सुना जा सकता है. इससे, प्रिडिक्टिव बैक और जेस्चर से कंट्रोल किए जाने वाले अन्य नेविगेशन के लिए, कॉन्टेक्स्ट अवेयर ऐनिमेशन चालू हो जाते हैं.

इस सुविधा के दो हिस्से हैं:

  1. जानकारी देना - कस्टम डेटा को ले जाने के लिए, NavigationEventInfo का इस्तेमाल करें.
  2. इस्तेमाल की जा रही स्थिति - जेस्चर की प्रोग्रेस और कॉन्टेक्स्ट को देखने के लिए, dispatcher.state (NavigationEventState) का इस्तेमाल करें.
  • NavigationEventCallback अब एक कॉल में जेस्चर का कॉन्टेक्स्ट सेट करने के लिए, setInfo(currentInfo, previousInfo) तरीके का इस्तेमाल किया जा सकता है (I1d5e7, b/424470518).
  • NavigationEventHandler एक नया ओवरलोड जोड़ता है, जो currentInfo और previousInfo को स्वीकार करता है. इससे यह Compose ऐप्लिकेशन में कॉन्टेक्स्ट देने के लिए प्राइमरी एपीआई बन जाता है (I6ecd3, b/424470518).

उदाहरण:

  data class MyScreenInfo(val screenName: String) : NavigationEventInfo

  NavigationEventHandler(
      enabled = true,
      currentInfo = MyScreenInfo("Details Screen"),
      previousInfo = MyScreenInfo("Home Screen")
  ) { /* Handle back completion */ }
  • NavigationEventDispatcher अब dispatcher.state और dispatcher.getState<T>() (If7fae, Ia90ca, b/424470518) को दिखाता है. StateFlow पर आधारित ये एपीआई, किसी भी यूज़र इंटरफ़ेस (यूआई) को इवेंट को सीधे तौर पर हैंडल किए बिना, जेस्चर की प्रोग्रेस और कॉन्टेक्स्ट के हिसाब से डेटा देखने की अनुमति देते हैं.

उदाहरण:

  val gestureState by LocalNavigationEventDispatcherOwner.current!!
      .navigationEventDispatcher
      .state
      .collectAsState()

  val progress = gestureState.progress // Returns latestEvent.progress or 0F

  when (val state = gestureState) {
      is InProgress -> {
          val toScreen = state.currentInfo as MyScreenInfo
          val fromScreen = state.previousInfo as MyScreenInfo
          println("Navigating from ${fromScreen.screenName} to ${toScreen.screenName}")
      }
      is Idle -> { /* Idle state */ }
  }
  • NavigationEventState (I7b196) में progress प्रॉपर्टी जोड़ें. यह प्रॉपर्टी, प्रोसेस में होने पर latestEvent.progress वैल्यू दिखाती है. इसके अलावा, यह 0F वैल्यू दिखाती है:

    val progress = state.progress
    
  • NavigationEventDispatcherOwner कंपोज़ेबल जोड़कर, NavigationEventDispatcher इंस्टेंस को क्रम से बनाया, लिंक किया, और हटाया जा सकता है. इससे डिसपैचर की चालू स्थिति को डाइनैमिक तरीके से कंट्रोल करने और अपने-आप साफ़ होने की सुविधा चालू होती है.

    @Composable
    fun Sample() {
        NavigationEventDispatcherOwner(enabled = true) {
            val localDispatcherOwner = LocalNavigationEventDispatcherOwner.current
        }
    }
    

एपीआई में हुए बदलाव

  • isPassthrough पैरामीटर को NavigationEventCallback से हटा दिया गया है. (I99028, b/424470518)
  • NavigationEventState कंस्ट्रक्टर अब इंटरनल हैं. जांच करने के लिए, DirectNavigationEventInputHandler की मदद से स्थिति को अपडेट करें. यह डिफ़ॉल्ट रूप से Idle पर सेट होती है. स्टेट को InProgress पर सेट करने के लिए, handleOnStarted या handleOnProgressed को कॉल करें. इसे Idle पर वापस लाने के लिए, handleOnCompleted या handleOnCancelled को कॉल करें. NavigationEventInfo को अपडेट करने के लिए, NavigationEventCallback.setInfo का इस्तेमाल करें. (I93dca, b/424470518)
  • NavigationEvent में डिफ़ॉल्ट पैरामीटर जोड़े गए हैं, ताकि इसे आसानी से इंस्टैंटिएट किया जा सके. साथ ही, टेस्टिंग को आसान बनाया जा सके. इसका इस्तेमाल TestNavigationEvent की जगह किया जाना चाहिए. (I5dc49, I232f4)
  • हमने TestNavigationEventCallback जोड़ा है. इससे, नेविगेशन इवेंट की जांच की जा सकेगी. इसके लिए, मौजूदा/पिछली स्थितियां तय की जा सकेंगी. (Idd22e, b/424470518)
  • NavigationEventInputHandler को ऐब्स्ट्रैक्ट क्लास में बदल दिया गया है, ताकि पिछले AbstractNavigationEventInputHandler को DirectNavigationEventInputHandler में लागू किया जा सके (Iadde5, Ifed40I3897c, b/432616296, b/435416924)
  • NavigationEventInputHandler में मौजूद send* फ़ंक्शन के प्रीफ़िक्स का नाम बदलकर handle* कर दिया गया है. (Iffcaf)
  • OnBackInvokedInputHandler अब नई abstract NavigationInputHandler की सुविधा देता है. (Ib45aa)
  • NavigationEventDispatcherOwner को बदलकर, माता-पिता के डिसपैचर की ज़रूरत वाली सुविधा में बदल दिया गया है. इसमें रूट डिसपैचर बनाने के लिए, आपको null को साफ़ तौर पर पास करना होगा. (Ia6f64, b/431534103)

गड़बड़ियां ठीक की गईं

  • NavigationEventDispatcher.dispose() में कलेक्शन की कॉपी बनाने से बचने की वजह से, बेहतर परफ़ॉर्मेंस मिली. (I4ab09)
  • उस समस्या को ठीक किया गया है जिसकी वजह से, NavigationEventHandler के चालू होने की स्थिति में बदलाव होने पर, वह सही तरीके से जवाब नहीं दे रहा था. (Ia5268,I19bec, I5be5c, b/431534103)

Docs से जुड़े अपडेट

  • KDocs को NavigationEvent के लिए अपडेट किया गया है. इससे यह साफ़ तौर पर पता चलता है कि यह एक यूनिफ़ाइड इवेंट रैपर है. साथ ही, अलग-अलग नेविगेशन टाइप (जेस्चर, क्लिक) के हिसाब से प्रॉपर्टी के व्यवहार के बारे में ज़्यादा जानकारी मिलती है. (I91e8d)
  • सिस्टम के बैक बटन को मैनेज करने वाले Compose API (BackHandler, PredictiveBackHandler, NavigationEventHandler) के लिए अपडेट किया गया दस्तावेज़. इसमें खास तौर पर, कॉलबैक के क्रम के बारे में बताया गया है. (I7ab94, )

डिपेंडेंसी अपडेट

  • NavigationEvent अब Compose Runtime 1.9.0-beta03 पर निर्भर करता है. इससे navigationevent-compose आर्टफ़ैक्ट, सभी केएमपी टारगेट के साथ काम कर पाता है. (Ia1b87)

वर्शन 1.0.0-alpha05

30 जुलाई, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha05 रिलीज़ हो गया है. वर्शन 1.0.0-alpha05 में ये बदलाव शामिल हैं.

पैरंट-चाइल्ड हाइरार्की की सुविधा:

अब NavigationEventDispatcher में पैरंट और चाइल्ड डिस्पैचर हो सकते हैं. इससे हैरारकी वाला ट्री स्ट्रक्चर बनता है. इससे नेविगेशन इवेंट को, Compose के मुश्किल यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट में ज़्यादा आसानी से मैनेज किया जा सकता है. ऐसा इसलिए, क्योंकि यह चेन्ड डिस्पैचर के ज़रिए यूज़र इंटरफ़ेस (यूआई) की स्ट्रक्चरल हैरारकी को दिखाता है. (I194ac)

  // Create a parent dispatcher that will manage navigation events at a higher level.
  val parentDispatcher = NavigationEventDispatcher()

  // Create a child dispatcher linked to the parent, forming a hierarchy.
  val childDispatcher = NavigationEventDispatcher(parentDispatcher)

हायरार्किकल isEnabled प्रॉपर्टी की मदद से, डिसपैचर को ऊपर से कंट्रोल किया जा सकता है. किसी डिसपैचर पर isEnabled को false पर सेट करने से, उसके सभी डिसेंडेंट डिसपैचर अपने-आप बंद हो जाते हैं. इस सुविधा की मदद से, नेविगेशन इवेंट सिस्टम की पूरी ब्रांच को आसानी से टॉगल किया जा सकता है. (I9e985)

  // Disabling the child dispatcher disables all its callbacks and any of its children recursively.
  childDispatcher.isEnabled = false

इसके अलावा, NavigationEventCallback पर मौजूद isEnabled प्रॉपर्टी अब उससे जुड़े डिसपैचर की चालू स्थिति का पालन करती है. इसका मतलब है कि किसी कॉलबैक को सिर्फ़ तब चालू माना जाता है, जब कॉलबैक और उसका डिस्पैचर (इसमें उसके पूर्वज भी शामिल हैं) दोनों चालू हों. इससे यह पक्का होता है कि कॉलबैक को चालू करने पर, क्रम के हिसाब से कंट्रोल किया जा सके. (I1799a)

  // Create a test callback and add it to the child dispatcher.
  val callback1 = TestNavigationEventCallback(isEnabled = true)
  childDispatcher.addCallback(callback1)

  // Since the childDispatcher is disabled, the callback is effectively disabled as well.
  assertThat(callback1.isEnabled).isFalse()

डिसपैचर और उनके बच्चों के खातों को पूरी तरह से हटाने के लिए, एक नई dispose() विधि शुरू की गई है. dispose() को कॉल करने से, लिसनर बंद हो जाते हैं, ताकि मेमोरी लीक न हो. साथ ही, यह सभी चाइल्ड डिस्पैचर को बार-बार डिस्पोज़ करता है, डिस्पैचर के साथ रजिस्टर किए गए सभी कॉलबैक हटाता है, और इसे इसके पैरंट से अनलिंक करता है. इससे यह पक्का होता है कि जब डिस्पैचर की ज़रूरत नहीं होती है, तो संसाधनों को सही तरीके से रिलीज़ किया जाता है. (I9e985)

  // Dispose the child dispatcher to clean up resources.
  childDispatcher.dispose()

अगर डिस्पोज़ किए गए किसी डिस्पैचर पर कोई सार्वजनिक तरीका लागू किया जाता है, तो तुरंत IllegalStateException थ्रो कर दिया जाता है. इससे, बिना किसी सूचना के होने वाली गड़बड़ियों को रोकने में मदद मिलती है. साथ ही, डेवलपर को डेवलपमेंट के दौरान, गलत इस्तेमाल की पहचान करने में मदद मिलती है. (Ic2dc3)

  val callback2 = TestNavigationEventCallback()

  // Attempting to use a disposed dispatcher will throw an exception.
  assertThrows<IllegalStateException> {
      childDispatcher.addCallback(callback2)
  }

ध्यान दें: हम एक नया NavigationEventDispatcherOwner कंपोज़ेबल पेश करेंगे. यह aosp/3692572 में Compose UI के अंदर चाइल्ड डिस्पैचर को अपने-आप मैनेज करता है. हालांकि, यह बदलाव मौजूदा रिलीज़ में शामिल नहीं किया गया है. इसे अगली रिलीज़ में शामिल किया जाएगा.

Navigation Testing Library

  • navigationevent लाइब्रेरी के लिए टेस्टिंग की खास सुविधाएं देने के लिए, navigationevent-testing मॉड्यूल जोड़ा गया है. (0e50b6)
  • टेस्टिंग के लिए, TestNavigationEventCallback नकली यूटिलिटी क्लास जोड़ें. यह कुकी, कॉलबैक के तरीके से किए गए कॉल रिकॉर्ड करती है. साथ ही, पुष्टि करने में मदद करने के लिए, मिले NavigationEvent आइटम सेव करती है. (4a0246)
  • डिफ़ॉल्ट वैल्यू वाले NavigationEvent इंस्टेंस बनाने के लिए, TestNavigationEvent फ़ेक यूटिलिटी फ़ंक्शन जोड़ा गया है. इससे नेविगेशन इवेंट प्रोसेसिंग के लिए यूनिट टेस्ट आसान हो जाती हैं. (3b63f5)
  • टेस्टिंग के लिए, TestNavigationEventDispatcherOwner नकली यूटिलिटी क्लास जोड़ें. यह फ़ॉलबैक और चालू स्थिति में बदलाव वाले इवेंट की संख्या को ट्रैक करता है, ताकि टेस्ट में इंटरैक्शन की पुष्टि की जा सके. (c8753e)

एपीआई में हुए बदलाव

  • NavigationEventInputHandler को androidMain से commonMain में ले जाएं, ताकि इसे KMP के सामान्य कोड में उपलब्ध कराया जा सके. इवेंट भेजने के लिए, नई public send* सुविधाएं जोड़ी गईं. NavigationEventDispatcher पर डिसपैच फ़ंक्शन को public से internal में बदलें. अब उपयोगकर्ताओं को इवेंट भेजने के लिए, NavigationEventInputHandler का इस्तेमाल करना होगा. (Ia7114)
  • NavigationInputHandler का नाम बदलकर OnBackInvokedInputHandler करें. (I63405)

गड़बड़ियां ठीक की गईं

  • NavigationEventDispatcher को फिर से फ़ैक्टर किया गया है, ताकि इंटरमीडिएट लिस्ट ऐलोकेशन से बचा जा सके और कॉल बैक डिस्पैच की परफ़ॉर्मेंस को बेहतर बनाया जा सके. इससे ओवरहेड कम हो जाएगा. (I82702, I1a9d9)
  • NavigationEvent में touchX, touchY, और progress फ़ील्ड में @FloatRange एनोटेशन जोड़ें, ताकि कंपाइल टाइम पर वैल्यू की मान्य रेंज लागू की जा सके और एपीआई की सुरक्षा को बेहतर बनाया जा सके. (Iac0ec)

वर्शन 1.0.0-alpha04

2 जुलाई, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha04 रिलीज़ हो गया है. वर्शन 1.0.0-alpha04 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • navigationevent-compose के लिए implementedInJetBrainsFork का इस्तेमाल किया गया और कंपोज़ के नियमों के मुताबिक commonStubs टारगेट जोड़ा गया. JetBrains ने बदलाव का अनुरोध किया है. (f60c79)
  • सही स्टब जनरेट करने के लिए, Kotlin/Native के लिए Compose कंपाइलर प्लगिन का इस्तेमाल किया गया. सार्वजनिक एपीआई या उनके काम करने के तरीके पर कोई असर नहीं पड़ेगा. (1890c9)

वर्शन 1.0.0-alpha03

18 जून, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha03 रिलीज़ हो गया है. वर्शन 1.0.0-alpha03 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • navigationevent लाइब्रेरी में Jetpack Compose की सुविधाओं को इस्तेमाल करने के लिए, एक नया navigationevent-compose मॉड्यूल जोड़ा गया है. (980d78)
  • NavigationEvent Compose ने एक नई LocalNavigationEventDispatcherOwner लोकल कंपोज़िशन जोड़ी है. यह एक ऐसी वैल्यू दिखाता है जो शून्य हो सकती है, ताकि यह बेहतर तरीके से तय किया जा सके कि यह मौजूदा कंपोज़िशन में उपलब्ध है या नहीं. अगर डेवलपर खाते का मालिक नहीं मिलता है, तो NavigationEventHandler अब गड़बड़ी का मैसेज दिखाएगा. (62ffda)
  • NavigationEvent Compose में, (अनुमानित बैक जेस्चर) इवेंट को हैंडल करने के लिए, नया NavigationEventHandler कंपोज़ेबल जोड़ा गया है. यह NavigationEvent ऑब्जेक्ट का Flow देता है. इन्हें निलंबित करने वाले उस लैम्डा में इकट्ठा करना ज़रूरी है जिसे आपने c42ba6 में दिया है :
NavigationEventHandler { progress: Flow<NavigationEvent> ->
  // This block is executed when the back gesture begins.
  try {
    progress.collect { backEvent ->
      // Handle gesture progress updates here.
    }
    // This block is executed if the gesture completes successfully.
  } catch (e: CancellationException) {
    // This block is executed if the gesture is cancelled
    throw e
  } finally {
    // This block is executed either the gesture is completed or cancelled
  }
}

एपीआई में हुए बदलाव

  • अब हर NavigationEventCallback को एक समय में सिर्फ़ एक NavigationEventDispatcher के साथ रजिस्टर किया जा सकता है. इसे एक से ज़्यादा डिस्पैचर के साथ जोड़ने पर, IllegalStateException दिखता है. ध्यान दें कि यह तरीका OnBackPressedDispatcher से अलग है. OnBackPressedDispatcher में एक से ज़्यादा डिस्पैचर इस्तेमाल किए जा सकते हैं. (e82c19)
  • नेविगेशन के दौरान म्यूटेशन को रोकने के लिए, isPassThrough को val बनाया गया है. इससे NavigationEvent के डिसपैचिंग में समस्या आ सकती है. (I0b287)

वर्शन 1.0.0-alpha02

4 जून, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha02 रिलीज़ हो गया है. वर्शन 1.0.0-alpha02 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • NavigationEventDispatcher के सेकंडरी कंस्ट्रक्टर को डिफ़ॉल्ट आर्ग्युमेंट से बदलें. (I716a0)
  • NavigationEventCallback से प्राथमिकता वाली प्रॉपर्टी हटाएं. इसके बजाय, NavigationEventDispatcher.addCallback() को प्राथमिकता दें. (I13cae)

गड़बड़ियां ठीक की गईं

  • हमने एक ऐसी ConcurrentModificationException को ठीक किया है जो क्लोज़ेबल की इंटरनल सूची में एक साथ बदलाव करने की वजह से, NavigationEventCallback.remove() को कॉल करने पर हो सकती थी. (b/420919815)

वर्शन 1.0.0-alpha01

20 मई, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha01 रिलीज़ हो गया है. वर्शन 1.0.0-alpha01 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • androidx.navigationevent लाइब्रेरी, सिस्टम बैक के साथ-साथ अनुमानित बैक को मैनेज करने के लिए, KMP-first API उपलब्ध कराती है. NavigationEventDispatcher, एक या उससे ज़्यादा NavigationEventCallback इंस्टेंस को रजिस्टर करने के लिए एक सामान्य एपीआई के तौर पर काम करता है, ताकि सिस्टम बैक इवेंट मिल सकें.
  • यह लेयर, androidx.activity में पहले रिलीज़ किए गए एपीआई के नीचे मौजूद होती है. इसका मकसद, ज़्यादा लेवल वाले कॉम्पोनेंट में Activity API का इस्तेमाल करने या Android फ़्रेमवर्क OnBackInvokedDispatcher API का सीधे तौर पर इस्तेमाल करने के बजाय, कम राय वाला विकल्प उपलब्ध कराना है. Activity 1.12.0-alpha01 के तहत, androidx.activity एपीआई को नेविगेशन इवेंट एपीआई के आधार पर फिर से लिखा गया है.