নেভিগেশন ইভেন্ট
| সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | রিলিজ প্রার্থী | বিটা রিলিজ | আলফা রিলিজ |
|---|---|---|---|---|
| ২৭ মার্চ, ২০২৬ | ১.০.২ | - | ১.১.০-বিটা০১ | - |
নির্ভরতা ঘোষণা করা
navigationevent-এর উপর ডিপেন্ডেন্সি যোগ করতে হলে, আপনাকে আপনার প্রজেক্টে গুগল মেভেন রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য গুগলের মেভেন রিপোজিটরি পড়ুন।
আপনার অ্যাপ বা মডিউলের build.gradle ফাইলে প্রয়োজনীয় আর্টিফ্যাক্টগুলোর ডিপেন্ডেন্সি যোগ করুন:
গ্রোভি
dependencies { implementation "androidx.navigationevent:navigationevent:1.1.0-beta01" }
কোটলিন
dependencies { implementation("androidx.navigationevent:navigationevent:1.1.0-beta01") }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, 'বিল্ড নির্ভরতা যোগ করুন ' দেখুন।
প্রতিক্রিয়া
আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করে। আপনি যদি নতুন কোনো সমস্যা খুঁজে পান অথবা এই লাইব্রেরিটি উন্নত করার জন্য কোনো ধারণা থাকে, তবে আমাদের জানান। নতুন কোনো সমস্যা তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরির বিদ্যমান সমস্যাগুলো দেখে নিন। আপনি তারকা বোতামে ক্লিক করে কোনো বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
এই আর্টিফ্যাক্টটির জন্য কোনো রিলিজ নোট নেই।
সংস্করণ ১.১
সংস্করণ 1.1.0-beta01
নেভিগেশন ইভেন্ট
সংস্করণ 1.1.0-beta01
২৭ মার্চ, ২০২৬
androidx.navigationevent:navigationevent-*:1.1.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-beta01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
- অনিয়ন্ত্রিত ফরোয়ার্ড নেভিগেশন ইভেন্টগুলির জন্য একটি ডিফল্ট সিস্টেম আচরণ সক্রিয় করতে,
NavigationEventDispatcherএOnForwardCompletedFallbackযোগ করুন। ( Iac620 , b/489138116 )
সংস্করণ 1.1.0-alpha01
২৫শে ফেব্রুয়ারি, ২০২৬
androidx.navigationevent:navigationevent-*:1.1.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নতুন বৈশিষ্ট্য
- NavigationEvent-Compose-এ সমস্ত Kotlin Multiplatform (KMP) টার্গেট সমর্থন করুন।
LocalViewথেকে ওনার রেজোলিউশনকে বিচ্ছিন্ন করুন, যাতে প্ল্যাটফর্ম হোস্টগুলি একটি ডিফল্টLocalNavigationEventDispatcherOwnerপ্রদান করতে পারে এবং একই সাথে Android-এLocalViewএকটি নিরাপদ ফলব্যাক হিসেবে বজায় রাখতে পারে। ( Iae980 , b/434940570 , Iccf58 )
এপিআই পরিবর্তন
- অ্যান্ড্রয়েডের
BackEventএবংNavigationEventএর মধ্যে রূপান্তর করার জন্যNavigationEvent.toBackEvent()এবংBackEvent.toNavigationEvent()এক্সটেনশন ফাংশন যোগ করুন। ( Ie3b71 , b/477001292 )
সংস্করণ ১.০
সংস্করণ ১.০.২
২৮ জানুয়ারী, ২০২৬
androidx.navigationevent:navigationevent-*:1.0.2 প্রকাশিত হয়েছে। সংস্করণ 1.0.2-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- অ্যান্ড্রয়েড স্টুডিও প্রিভিউতে
NavigationEventHandlerব্যবহার করার সময় ক্র্যাশ হওয়ার সমস্যাটি সমাধান করা হয়েছে। হ্যান্ডলারটি এখন ইন্সপেকশন মোড শনাক্ত করে এবং কিছুই করে না, ফলে কোনো ডিসপ্যাচার ছাড়াই প্রিভিউটি রেন্ডার হতে পারে। ( I370f2 , b/454313986 )।
সংস্করণ ১.০.১
০৩ ডিসেম্বর, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.1 প্রকাশিত হয়েছে। সংস্করণ 1.0.1-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
rememberNavigationEventDispatcherOwner()দিয়ে তৈরি করা চাইল্ডNavigationEventDispatcherএর মতো ডিভাইস ডিসপোজ করার সময় একটিConcurrentModificationExceptionসমাধান করা হয়েছে। ( ec68a9 , b/454363524 )
সংস্করণ ১.০.০
১৯ নভেম্বর, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
১.০.০ এর প্রধান বৈশিষ্ট্যসমূহ:
Navigation Event লাইব্রেরি এখন স্থিতিশীল! Navigation Event হলো অ্যান্ড্রয়েডএক্স-এর একটি লাইব্রেরি, যা অ্যান্ড্রয়েড (এবং অন্যান্য প্ল্যাটফর্মে) সিস্টেম-ব্যাক এবং প্রেডিক্টিভ ব্যাক-এর মতো সিস্টেম-স্তরের ইন্টারঅ্যাকশনগুলো পরিচালনা করে।
NavigationEventহ্যান্ডেল করার জন্য, আপনি আপনার নিজস্বNavigationEventHandlerইমপ্লিমেন্ট করতে পারেন যা প্রয়োজনীয় ফাংশনগুলোকে ওভাররাইড করে। এরপর আপনাকে হ্যান্ডলারটিকে একটিNavigationEventDispatcherএ যুক্ত করতে হবে। Activity1.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 কে হোইস্ট করা খুব সহজ হয়ে যায় এবং এর ফলে বিভিন্ন Composable এটিকে পর্যবেক্ষণ করতে পারে (যেমন 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() )লাইব্রেরিটি একটি
NavigationEventInputমাধ্যমে সরাসরিNavigationEventDispatcherএ সিগন্যাল পাঠানোর সুযোগও করে দেয়।NavigationEventInputগুলো নেভিগেশন সিস্টেমের "ইনপুট" অংশ হিসেবে কাজ করে, যা প্ল্যাটফর্ম-নির্দিষ্ট ইভেন্টগুলোকে (যেমন সিস্টেম ব্যাক জেসচার বা বাটন ক্লিক) এমন প্রমিত ইভেন্টে রূপান্তরিত করে যা একটিNavigationEventDispatcherএ পাঠানো যায়।navigationevent:navigationeventমডিউলটি বর্তমানে দুটিNavigationEventInputপ্রদান করে: একটি অধিক জেনেরিকDirectNavigationEventInputযা যেকোনো ইভেন্ট ডিসপ্যাচ করার সুযোগ দেয় এবং একটি অ্যান্ড্রয়েড-নির্দিষ্টOnBackInvokedInputযা একটিNavigationEventDispatcherসিস্টেম ব্যাক এবং প্রেডিক্টিভ ব্যাক জেসচার সমর্থন করতে সাহায্য করে। আপনি যদিComponentActivityদ্বারা প্রদত্ত ডিসপ্যাচার ব্যবহার না করে নিজের ডিসপ্যাচার প্রয়োগ করেন, তবে আপনাকে ম্যানুয়ালি আপনার ইনপুট যোগ করতে হবে:val dispatcher = NavigationEventDispatcher() dispatcher.addInput(DirectNavigationEventInput()) dispatcher.addInput(OnBackInvokedDefaultInput(invoker))
সংস্করণ 1.0.0-rc01
০৫ নভেম্বর, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
সংস্করণ 1.0.0-beta01
০৮ অক্টোবর, ২০২৫
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
২৪ সেপ্টেম্বর, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-alpha09 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha09-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
Idle()ইনস্ট্যানশিয়েট করার পরিবর্তে সরাসরিNavigationEventTransitionState.Idleসিঙ্গেলটন অবজেক্টটি ব্যবহার করুন। ( Ic7d9e , b/444734264 ) - সুবিধার্থে কনস্ট্রাক্টরগুলোকে অভ্যন্তরীণ করুন; সরাসরি নির্মাণের পরিবর্তে public
NavigationEventDispatcher.historyএর মাধ্যমে ইনস্ট্যান্স সংগ্রহ করুন। ( I3b7e0 , b/444734264 ) -
rememberNavigationEventStateএর মাধ্যমেNavigationEventStateতৈরি করা আবশ্যক; কনস্ট্রাক্টরটি এখন অভ্যন্তরীণ। ( Ie143c , b/444734264 ) -
fallbackOnBackPressedব্যবহার এবং কনস্ট্রাক্টর প্যারামিটারের পরিবর্তেonBackCompletedFallbackগ্রহণ করা হয়েছে। এর আচরণ অপরিবর্তিত; এটি শুধুমাত্র সম্পন্ন হওয়া কিন্তু হ্যান্ডেল না করা ব্যাক ইভেন্টের ক্ষেত্রেই কল করা হয়। ( Idabe9 , b/444734264 ) -
NavigationEventHistory(mergedHistory, currentIndex)এর প্রাইমারি কনস্ট্রাক্টর এখনinternal। এক্সটারনাল কনজিউমারদের ইনস্ট্যান্স তৈরি করার জন্য অবশ্যই পাবলিক কনস্ট্রাক্টর (হয় এম্পটি কনস্ট্রাক্টর অথবা পার্টিশন-ভিত্তিক কনস্ট্রাক্টর) ব্যবহার করতে হবে। ( I1c047 , b/444734264 ) -
View.setViewTreeNavigationEventDispatcherOwnernullable owner গ্রহণ করার উপযোগী করুন ( 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.historyStateFlowচালু করুন। এই নন-জেনেরিক ফ্লোটি অবজারভারদের শুধুমাত্র নেভিগেশন স্ট্যাকের পরিবর্তনগুলিতে সাবস্ক্রাইব করার অনুমতি দেয় এবং জেসচার চলাকালীন স্থিতিশীল থাকে। এটিtransitionStateএর প্রতিরূপ। ( I1db10 , b/444734264 ) - একটি নতুন গ্লোবাল
NavigationEventDispatcher.transitionStateStateFlowচালু করুন। এই নন-জেনেরিক ফ্লো অবজারভারদেরকে হিস্ট্রি থেকে আলাদাভাবে শুধুমাত্র ফিজিক্যাল জেসচার স্টেট (Idle/InProgress)-এ সাবস্ক্রাইব করার সুযোগ দেয়। ( I171fa , b/444734264 ) -
NavigationEventHistoryStateক্লাসটি চালু করা হলো। এটি জেসচার স্টেট থেকে আলাদাভাবে নেভিগেশন তথ্যের ইতিহাস পর্যবেক্ষণের জন্য মূল এপিআই হিসেবে কাজ করবে। ( I81ca5 , b/444734264 ) -
NavigationEventএখন@Immutableহিসেবে চিহ্নিত করা হয়েছে, যা Compose Compiler-কে রিকম্পোজিশন অপ্টিমাইজ করতে সক্ষম করে। ( If78c7 , b/444734264 ) -
navigationevent-composeহ্যান্ডলার API-গুলো আপডেট করা হয়েছে।NavigationEventHandlerএবংNavigationBackHandler(এবং এর বিভিন্ন সংস্করণ) এখন একটি নতুন ওভারলোড সমর্থন করে যা একটি হোয়িস্টেডNavigationEventStateগ্রহণ করে। সাধারণ ওভারলোডগুলো (যাcurrentInfoগ্রহণ করে) অপরিবর্তিত রাখা হয়েছে এবং এখন অভ্যন্তরীণভাবে এই নতুন স্টেট মডেলটি ব্যবহার করে। ( Ic3251 , b/444734264 ) -
navigationevent-composeলাইব্রেরিতে নতুন@StableNavigationEventState<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 ) -
OnBackInvokedInputOnBackInvokedOverlayInputঅথবাOnBackInvokedDefaultInputদ্বারা প্রতিস্থাপন করুন। ( I5323f , b/428948766 ) -
NavigationEventState@Immutableহিসেবে চিহ্নিত করুন। এটি নিশ্চিত করে যে এই স্টেট পর্যবেক্ষণকারী Composable-গুলি সঠিকভাবে রিকম্পোজিশন এড়িয়ে যেতে পারে, যার ফলে Compose-এর পারফরম্যান্স উন্নত হয়। ( I399c8 ) -
NavigationEventInfo.NotProvidedকেNavigationEventInfo.None;রেফারেন্সগুলি আপডেট করুন। আচরণে কোনো পরিবর্তন হবে না। ( I5e2d4 ) -
NavigationEventInfoএখন@Immutableহিসেবে চিহ্নিত করা হয়েছে, যা Compose Compiler-কে রিকম্পোজিশন অপ্টিমাইজ করতে সক্ষম করে। ( I7c112 ) - ব্যাক কমপ্লিশন ফলব্যাকের জন্য মজাদার ইন্টারফেসের মাধ্যমে জাভার কর্মদক্ষতা উন্নত করুন। ( I8a860 )
-
onHasEnabledHandlerChangedonHasEnabledHandlersChangedএ রিনেম করুন। এটি স্পষ্ট করে যে কলব্যাকটি শুধুমাত্র একটি হ্যান্ডলারের নয়, বরং সমস্ত হ্যান্ডলারের সম্মিলিত সক্রিয়করণ অবস্থার উপর রিপোর্ট করে। ( I1af61 , b/443711297 ) - NavigationEventDispatcher থেকে
hasEnabledHandler()সরিয়ে দিনNavigationEventDispatcher;এর পরিবর্তেNavigationEventInput.onHasEnabledHandlersChangedব্যবহার করুন। ( Idef72 , b/443711297 ) - ন্যাভিগেশন হিস্ট্রির পরিবর্তন সম্পর্কে লিসেনারদের অবহিত করতে
NavigationEventInputএonInfoChangedকলব্যাক যোগ করুন। এটি বর্তমান, পূর্ববর্তী এবং পরবর্তী স্ট্যাকের সম্পূর্ণ প্রেক্ষাপট প্রদান করে, যা ইনপুটগুলিকে প্রাসঙ্গিক তথ্যের উপর ভিত্তি করে প্রতিক্রিয়া জানাতে সক্ষম করে। ( I69a8b , b/443282983 ) -
NavigationEventএরswipeEdgeএকটি@IntDefপরিণত করুন ( Icee54 , b/443950342 ) - একটি ডিসপ্যাচারকে একটি নির্দিষ্ট প্রায়োরিটিতে সীমাবদ্ধ করতে
NavigationEventDispatcher.addInputএ একটিpriorityপ্যারামিটার যোগ করুন; এর ফলেonHasEnabledCallbacksChangedএর মতো ইভেন্টগুলো এখন কেবল তখনই ফায়ার হবে যখন সেই প্রায়োরিটির কলব্যাকগুলো পরিবর্তিত হবে। ( I3e488 , b/443711297 ) - স্পষ্টতার জন্য
NavigationEventDispatcherপ্যারামিটারটির নামparentDispatcherথেকে parent-এ পরিবর্তন করুন। ( Id4f1f , b/443801782 ) - জাভা ব্যবহারকারীদের জন্য
@IntDefএর পক্ষেNavigationEventPriorityঅপসারণ করুন ( I10a9f , b/440514265 ) - ন্যাভিগেশন হ্যান্ডলার চুক্তি কার্যকর করুন। যদি আপনার
NavigationEventHandlerisBackEnabledবাisForwardEnabledtrueসেট করে, তাহলে আপনাকে এখন যথাক্রমেonBackCompletedবাonForwardCompletedওভাররাইড করতে হবে। ডিফল্ট ইমপ্লিমেন্টেশনগুলো এখন নীরব ব্যর্থতা রোধ করতে একটি এক্সেপশন থ্রো করে। ( I17c62 ) - ন্যাভিগেশন ইভেন্ট হ্যান্ডলার যোগ করার সময় বৈধ প্রায়োরিটি মান প্রয়োগ করুন। এখন থেকে অসমর্থিত প্রায়োরিটি দিয়ে
addHandlerকল করলে একটিIllegalArgumentExceptionথ্রো হবে, যা সমস্ত টার্গেট প্ল্যাটফর্মে ভুল ব্যবহারের জন্য তাৎক্ষণিক প্রতিক্রিয়া প্রদান করবে। ( I3c474 )
বাগ সংশোধন
-
addHandlerআইডম্পোটেন্ট করুন; সদৃশ নিবন্ধন উপেক্ষা করুন। ( I052aa , b/444734264 ) - পুনর্গঠনের সময়
NavigationEventStateপ্রোপার্টিগুলো সিঙ্ক করে রাখুন। ( Ib3b4d , b/444734264 ) - নিশ্চিত করুন যে
NavigationEventInputsনিবন্ধনের সাথে সাথেই বর্তমান প্রাসঙ্গিক তথ্য (বর্তমান, পিছনে, সামনে) পায়। ( Ie65bf , b/443282983 )
সংস্করণ 1.0.0-alpha08
১০ সেপ্টেম্বর, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha08-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নতুন বৈশিষ্ট্য
- ফ্লো-ভিত্তিক হ্যান্ডলারের পরিবর্তে একটি ল্যাম্বডা-ভিত্তিক
NavigationEventHandlerAPI চালু করুন। ফ্লো সংগ্রহ করার পরিবর্তে সাধারণ কলব্যাকের মাধ্যমে সামনে ও পেছনে যাওয়ার অঙ্গভঙ্গি পরিচালনা করুন, যা বয়লারপ্লেট কোড কমায় এবং বাতিল হওয়ার সমস্যা এড়ায়। নির্দিষ্ট সুবিধার জন্যNavigationBackHandlerএবংNavigationForwardHandlerAPI হিসেবে প্রদান করুন। ফ্লো-ভিত্তিকNavigationEventHandlerসরিয়ে দিন; নতুন কলব্যাকগুলিতে স্থানান্তরিত করুন। ( I23bac , b/436248277 ) - প্যাসিভ লিসেনারদের সম্মিলিত ব্যাক ইনফোর মাধ্যমে সম্পূর্ণ নেভিগেশন ব্যাক স্ট্যাক অ্যাক্সেস করার অনুমতি দিন। UI-গুলিকে শুধুমাত্র শীর্ষ-স্থানীয় কলব্যাকে সীমাবদ্ধ না রেখে প্রিভিউ এবং নেস্টেড নেভিগেশন হিস্ট্রি রেন্ডার করতে সক্ষম করুন। ( 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লাইব্রেরিটিকে জাভার সাথে আন্তঃকার্যকরী করুন। সমস্ত পাবলিক এপিআই এখন জাভা কোড থেকে সম্পূর্ণরূপে অ্যাক্সেসযোগ্য, যা মিশ্র-ভাষা বা শুধুমাত্র-জাভা প্রোজেক্টে নির্বিঘ্ন ইন্টিগ্রেশন সক্ষম করে। ( Ibc944 , I5465f , I9fb1e , b/440532890 b/443040294 ) -
NavigationEventCallbackনাম পরিবর্তন করেNavigationEventHandlerরাখার মাধ্যমে API-এর ভূমিকা স্পষ্ট করুন। এই পরিবর্তনটি বহু-পর্যায়ের নেভিগেশন জেসচার পরিচালনার জন্য ক্লাসটির উদ্দেশ্যকে আরও ভালোভাবে প্রতিফলিত করে। সংশ্লিষ্টaddCallbackমেথডটির নাম এখনaddHandler। ( I2492a , b/443040331 )
বাগ সংশোধন
- ফরওয়ার্ড নেভিগেশনের সময় ব্যাক ফলব্যাক চালু হওয়া প্রতিরোধ করুন। ( I74814 , b/436248290 )
- প্রিডিক্টিভ ফরোয়ার্ড নেভিগেশনের জন্য সমর্থন যোগ করা হয়েছে।
NavigationEventAPI-গুলো এখন ব্যাক এবং ফরোয়ার্ড উভয় জেসচারই পরিচালনা করতে পারে, যার ফলে উভয় নেভিগেশন দিকের জন্য সামঞ্জস্যপূর্ণ অ্যানিমেশন পাওয়া যায়। ( Idc98c , b/436248290 ) - যখন কোনো চাইল্ড
NavigationEventDispatcherOwnerসরিয়ে ফেলা হয়, তখন রিকম্পোজিশনের সময় একটিIllegalStateExceptionক্র্যাশ প্রতিরোধ করুন। ( Iff50c , b/412629020 ) - প্যাসিভ লিসেনাররা এখন সম্মিলিত ব্যাক ইনফোর মাধ্যমে সম্পূর্ণ ন্যাভিগেশন ব্যাক স্ট্যাক অ্যাক্সেস করতে পারবে, যার ফলে UI-গুলো শুধুমাত্র শীর্ষস্থ কলব্যাকে সীমাবদ্ধ না থেকে প্রিভিউ এবং নেস্টেড ন্যাভিগেশন হিস্ট্রি রেন্ডার করতে পারবে। ( I7a510 , b/436248277 )
সংস্করণ 1.0.0-alpha07
২৭ আগস্ট, ২০২৫
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
১৩ আগস্ট, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha06-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নতুন বৈশিষ্ট্য
প্যাসিভ লিসেনার এপিআই
এখন আপনি যেকোনো নেভিগেশন হোস্ট থেকে কাস্টম প্রাসঙ্গিক তথ্য পাঠাতে পারবেন এবং আপনার UI-এর যেকোনো জায়গা থেকে পরোক্ষভাবে জেসচার অবস্থার পরিবর্তন পর্যবেক্ষণ করতে পারবেন । এটি প্রেডিক্টিভ ব্যাক এবং অন্যান্য জেসচার-চালিত নেভিগেশনের জন্য কনটেক্সট-অ্যাওয়্যার অ্যানিমেশন সক্ষম করে।
এই বৈশিষ্ট্যটির দুটি অংশ রয়েছে:
- তথ্য প্রদান - নিজস্ব ডেটা বহন করার জন্য
NavigationEventInfoব্যবহার করুন। - স্টেট ব্যবহার - জেসচারের অগ্রগতি এবং কনটেক্সট পর্যবেক্ষণ করতে
dispatcher.state(NavigationEventState) ব্যবহার করুন।
-
NavigationEventCallbackএখন এক কলে জেসচার কনটেক্সট সেট করার জন্যsetInfo(currentInfo, previousInfo)মেথডটি প্রকাশ করেছে ( I1d5e7 , b/424470518 )। -
NavigationEventHandlerএকটি নতুন ওভারলোড যোগ করেছে যাcurrentInfoএবংpreviousInfoগ্রহণ করে, যার ফলে এটি Compose অ্যাপে কনটেক্সট সরবরাহের জন্য প্রধান API-তে পরিণত হয়েছে ( 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ভিত্তিক API-গুলো যেকোনো UI-কে সরাসরি ইভেন্টটি হ্যান্ডেল না করেই জেসচারের অগ্রগতি এবং প্রাসঙ্গিক ডেটা পর্যবেক্ষণ করতে দেয়।
উদাহরণ:
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স্তরক্রম অনুসারে
NavigationEventDispatcherইনস্ট্যান্স তৈরি, লিঙ্ক এবং ডিসপোজ করার জন্যNavigationEventDispatcherOwnerকম্পোজেবলটি যোগ করুন। ডিসপ্যাচারের সক্রিয় অবস্থার ডায়নামিক নিয়ন্ত্রণ এবং স্বয়ংক্রিয় ক্লিনআপ সক্ষম করুন।@Composable fun Sample() { NavigationEventDispatcherOwner(enabled = true) { val localDispatcherOwner = LocalNavigationEventDispatcherOwner.current } }
এপিআই পরিবর্তন
-
NavigationEventCallbackথেকেisPassthroughপ্যারামিটারটি সরিয়ে ফেলা হয়েছে। ( 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 ) -
DirectNavigationEventInputHandlerএ ( Iadde5 , Ifed40 I3897c , b/432616296 , b/435416924 ) পূর্ববর্তীAbstractNavigationEventInputHandlerএকটি ইমপ্লিমেন্টেশন দ্বারা প্রতিস্থাপন করার জন্যNavigationEventInputHandlerএকটি অ্যাবস্ট্রাক্ট ক্লাসে পরিণত করা হয়েছে। -
NavigationEventInputHandlerএরsend*ফাংশনগুলোর প্রিফিক্স পরিবর্তন করেhandle*রাখা হয়েছে। ( Iffcaf ) -
OnBackInvokedInputHandlerএখন নতুনabstractNavigationInputHandlerএক্সটেন্ড করে। ( Ib45aa ) -
NavigationEventDispatcherOwnerপরিবর্তন করে এখন একটি প্যারেন্ট ডিসপ্যাচার আবশ্যক করা হয়েছে, যেখানে রুট ডিসপ্যাচার তৈরি করার জন্য আপনাকে অবশ্যই স্পষ্টভাবেnullপাস করতে হবে। ( Ia6f64 , b/431534103 )
বাগ সংশোধন
-
NavigationEventDispatcher.dispose()-এ কালেকশন কপি পরিহার করে কার্যকারিতা উন্নত করা হয়েছে। ( I4ab09 ) - একটি সমস্যার সমাধান করা হয়েছে যেখানে
NavigationEventHandlerতার enabled অবস্থার পরিবর্তনে সঠিকভাবে সাড়া দিচ্ছিল না। ( Ia5268 , I19bec , I5be5c , b/431534103 )
ডকস আপডেট
- একটি সমন্বিত ইভেন্ট র্যাপার হিসেবে
NavigationEventএর ভূমিকা স্পষ্ট করতে এবং বিভিন্ন নেভিগেশন টাইপের (জেসচার, ক্লিক) ক্ষেত্রে এর প্রপার্টির আচরণ বিশদভাবে বর্ণনা করার জন্য KDocs-কে সম্প্রসারিত করা হয়েছে। ( I91e8d ) - সিস্টেম ব্যাক হ্যান্ডলিং কম্পোজ এপিআই (
BackHandler,PredictiveBackHandler,NavigationEventHandler)-এর ডকুমেন্টেশন আপডেট করা হয়েছে, যাতে কলব্যাকের ক্রম সম্পর্কিত আচরণ বিশেষভাবে উল্লেখ করা যায়। ( I7ab94 )
নির্ভরতা আপডেট
-
NavigationEventএখন Compose Runtime 1.9.0-beta03-এর উপর নির্ভরশীল, যাnavigationevent-composeআর্টিফ্যাক্টকে সকল KMP টার্গেট সমর্থন করতে সক্ষম করে। ( Ia1b87 )
সংস্করণ 1.0.0-alpha05
৩০ জুলাই, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha05-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
পিতা-মাতা-সন্তান সম্পর্ক সমর্থন:
একটি NavigationEventDispatcher এখন প্যারেন্ট এবং চাইল্ড ডিসপ্যাচার থাকতে পারে, যা একটি শ্রেণিবদ্ধ ট্রি কাঠামো তৈরি করে। এটি চেইনড ডিসপ্যাচারের মাধ্যমে UI-এর কাঠামোগত শ্রেণিবিন্যাস প্রতিফলিত করে, যার ফলে জটিল Compose UI কম্পোনেন্ট জুড়ে নেভিগেশন ইভেন্টগুলিকে আরও নমনীয়ভাবে প্রচার ও পরিচালনা করা যায়। ( 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 প্রপার্টিটি এখন এর সংশ্লিষ্ট ডিসপ্যাচারের enabled অবস্থাকে সম্মান করে। এর মানে হলো, একটি কলব্যাককে তখনই enabled বলে গণ্য করা হবে, যখন কলব্যাকটি নিজে এবং এর ডিসপ্যাচার (এর পূর্বসূরিদের সহ) উভয়ই enabled থাকবে, যা কলব্যাক অ্যাক্টিভেশনের উপর সামঞ্জস্যপূর্ণ শ্রেণিবদ্ধ নিয়ন্ত্রণ নিশ্চিত করে। ( 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)
}
দ্রষ্টব্য: আমরা aosp/3692572- এ একটি নতুন NavigationEventDispatcherOwner Composable চালু করব যা Compose UI-এর মধ্যে একটি চাইল্ড ডিসপ্যাচারকে স্বয়ংক্রিয়ভাবে পরিচালনা করে। তবে, এই পরিবর্তনটি বর্তমান রিলিজে অন্তর্ভুক্ত করা হয়নি এবং এটি পরবর্তী রিলিজের জন্য পরিকল্পনা করা হয়েছে।
নেভিগেশন টেস্টিং লাইব্রেরি
-
navigationeventলাইব্রেরির জন্য বিশেষ টেস্টিং ইউটিলিটি প্রদান করতেnavigationevent-testingমডিউলটি যোগ করুন। ( 0e50b6 ) - পরীক্ষার জন্য
TestNavigationEventCallbackনামে একটি নকল ইউটিলিটি ক্লাস যোগ করুন। এটি কলব্যাক মেথড কলগুলো রেকর্ড করে এবং যাচাইকরণের জন্য প্রাপ্তNavigationEventআইটেমগুলো সংরক্ষণ করে। ( 4a0246 ) - ডিফল্ট মান সহ
NavigationEventইনস্ট্যান্স তৈরি করতেTestNavigationEventফেক ইউটিলিটি ফাংশন যোগ করা হয়েছে, যা ন্যাভিগেশন ইভেন্ট প্রক্রিয়াকরণের জন্য ইউনিট টেস্টকে সহজ করে। ( 3b63f5 ) - পরীক্ষার জন্য
TestNavigationEventDispatcherOwnerনামক একটি নকল ইউটিলিটি ক্লাস যোগ করা হয়েছে। এটি টেস্টে ইন্টারঅ্যাকশন যাচাইকরণকে সমর্থন করার জন্য ফলব্যাক এবং এনাবলড-স্টেট-চেঞ্জড ইভেন্টের সংখ্যা ট্র্যাক করে। ( c8753e )
এপিআই পরিবর্তন
- KMP কমন কোডে উপলব্ধ করার জন্য
NavigationEventInputHandlerandroidMainথেকেcommonMainএ সরানো হয়েছে। ইভেন্ট প্রেরণের জন্য নতুনpublic send*মেথড যোগ করা হয়েছে।NavigationEventDispatcherএর ডিসপ্যাচ ফাংশনগুলোpublicথেকেinternalএ পরিবর্তন করা হয়েছে; ব্যবহারকারীদের এখন ইভেন্ট পাঠানোর জন্য অবশ্যইNavigationEventInputHandlerব্যবহার করতে হবে। ( Ia7114 ) -
NavigationInputHandlerনাম পরিবর্তন করেOnBackInvokedInputHandlerরাখা হলো। ( I63405 )
বাগ সংশোধন
- মধ্যবর্তী তালিকা বরাদ্দ পরিহার করে এবং কলব্যাক ডিসপ্যাচ কর্মক্ষমতা উন্নত করে ওভারহেড কমাতে
NavigationEventDispatcherরিফ্যাক্টর করুন। ( I82702 , I1a9d9 ) - কম্পাইল টাইমে বৈধ মানের পরিসীমা নিশ্চিত করতে এবং API নিরাপত্তা উন্নত করতে
NavigationEventএরtouchX,touchY, এবংprogressফিল্ডগুলিতে@FloatRangeঅ্যানোটেশন যোগ করুন। ( Iac0ec )
সংস্করণ 1.0.0-alpha04
২ জুলাই, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha04-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
navigationevent-compose-এimplementedInJetBrainsForkব্যবহার করা হয়েছে এবং কম্পোজ কনভেনশনের সাথে সামঞ্জস্য রাখতে একটিcommonStubsটার্গেট যোগ করা হয়েছে। এই পরিবর্তনটি JetBrains-এর অনুরোধে করা হয়েছে । ( f60c79 ) - সঠিক স্টাব জেনারেশন নিশ্চিত করার জন্য Kotlin/Native-এর জন্য Compose কম্পাইলার প্লাগইনের প্রয়োগ সংশোধন করা হয়েছে। পাবলিক API বা আচরণের উপর কোনো প্রভাব নেই। ( 1890c9 )
সংস্করণ 1.0.0-alpha03
১৮ জুন, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নতুন বৈশিষ্ট্য
-
navigationeventলাইব্রেরিতে Jetpack Compose-এর বৈশিষ্ট্যগুলো সমর্থন করার জন্য একটি নতুনnavigationevent-composeমডিউল চালু করা হয়েছে। ( 980d78 ) -
NavigationEventCompose একটি নতুনLocalNavigationEventDispatcherOwnerলোকাল কম্পোজিশন যোগ করেছে। এটি বর্তমান কম্পোজিশনে উপলব্ধ আছে কিনা তা আরও ভালোভাবে নির্ধারণ করার জন্য একটি নাল (null) ভ্যালু রিটার্ন করে। অন্তর্নিহিত মালিককে খুঁজে না পাওয়া গেলেNavigationEventHandlerএখন একটি এরর (error) থ্রো করবে। ( 62ffda ) -
NavigationEventCompose, (প্রিডিক্টিভ ব্যাক জেসচার) ইভেন্টগুলি পরিচালনা করার জন্য একটি নতুনNavigationEventHandlerComposable যুক্ত করেছে। এটি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থেকে ভিন্ন, যা একাধিক ডিসপ্যাচারকে অনুমতি দেয়। ( e82c19 ) - ন্যাভিগেশনের সময় পরিবর্তন রোধ করতে
isPassThroughএকটিvalকরা হয়েছে, যাNavigationEventএর ডিসপ্যাচিং ভেঙে দিতে পারতো। ( I0b287 )
সংস্করণ 1.0.0-alpha02
৪ জুন, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha02-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
NavigationEventDispatcherএর সেকেন্ডারি কনস্ট্রাক্টরকে ডিফল্ট আর্গুমেন্ট দিয়ে প্রতিস্থাপন করুন। ( I716a0 ) -
NavigationEventCallbackথেকে priority প্রপার্টিটি সরিয়ে দিন। এর পরিবর্তেNavigationEventDispatcher.addCallback()-এ priority পাস করুন। ( I13cae )
বাগ সংশোধন
- একই সাথে ক্লোজেবল-এর অভ্যন্তরীণ তালিকা পরিবর্তন করার কারণে
NavigationEventCallback.remove()কল করার সময় যেConcurrentModificationExceptionদেখা দিতে পারতো, তা সংশোধন করা হয়েছে। ( b/420919815 )
সংস্করণ 1.0.0-alpha01
২০ মে, ২০২৫
androidx.navigationevent:navigationevent-*:1.0.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নতুন বৈশিষ্ট্য
-
androidx.navigationeventলাইব্রেরিটি সিস্টেম ব্যাক এবং প্রেডিক্টিভ ব্যাক উভয়ই হ্যান্ডেল করার জন্য একটি KMP-ফার্স্ট API প্রদান করে। সিস্টেম ব্যাক ইভেন্ট গ্রহণ করার জন্য এক বা একাধিকNavigationEventCallbackইনস্ট্যান্স রেজিস্টার করতেNavigationEventDispatcherএকটি সাধারণ API হিসেবে কাজ করে। - এই লেয়ারটি
androidx.activityতে পূর্বে প্রকাশিত API-গুলোর নিচে অবস্থান করে এবং এর লক্ষ্য হলো উচ্চ-স্তরের কম্পোনেন্টগুলোতে Activity API ব্যবহার করা অথবা সরাসরি অ্যান্ড্রয়েড ফ্রেমওয়ার্কেরOnBackInvokedDispatcherAPI ব্যবহার করার একটি কম মতামত-নির্ভর বিকল্প হিসেবে কাজ করা। Activity 1.12.0-alpha01- এর অংশ হিসেবেandroidx.activityAPI-গুলোকে Navigation Event API-গুলোর উপর ভিত্তি করে নতুন করে লেখা হয়েছে।