নেভিগেশন ইভেন্ট

নেভিগেশন ইভেন্ট লাইব্রেরি সিস্টেম ব্যাক এবং প্রেডিক্টিভ ব্যাক উভয়ই পরিচালনা করার জন্য একটি KMP-first API প্রদান করে।
সর্বশেষ আপডেট স্থিতিশীল রিলিজ রিলিজ প্রার্থী বিটা রিলিজ আলফা রিলিজ
৫ নভেম্বর, ২০২৫ - ১.০.০-rc01 সম্পর্কে - -

নির্ভরতা ঘোষণা করা

নেভিগেশনইভেন্টের উপর নির্ভরতা যোগ করতে, আপনার প্রোজেক্টে গুগল ম্যাভেন রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য গুগলের ম্যাভেন রিপোজিটরি পড়ুন।

আপনার অ্যাপ বা মডিউলের জন্য build.gradle ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টের জন্য নির্ভরতা যোগ করুন:

গ্রোভি

dependencies {     implementation "androidx.navigationevent:navigationevent:1.0.0-rc01" }

কোটলিন

dependencies {     implementation("androidx.navigationevent:navigationevent:1.0.0-rc01") }

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যোগ করুন দেখুন।

প্রতিক্রিয়া

আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করবে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরিটি উন্নত করার জন্য কোন ধারণা থাকে তাহলে আমাদের জানান। নতুন একটি তৈরি করার আগে দয়া করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি একবার দেখে নিন। আপনি তারকা বোতামে ক্লিক করে বিদ্যমান সমস্যাটিতে আপনার ভোট যোগ করতে পারেন।

একটি নতুন সমস্যা তৈরি করুন

আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।

এই নিদর্শনটির জন্য কোনও রিলিজ নোট নেই।

সংস্করণ 1.0

সংস্করণ 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-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • NavigationEvent.touchX এবং NavigationEvent.touchY জন্য FloatRange অ্যানোটেশনটি সংশোধন করুন। এই মানগুলি পরম পিক্সেল স্থানাঙ্ক উপস্থাপন করে এবং এর 1.0 উপরের সীমা নেই। ( I4b205 , b/445989313 )
  • rememberNavigationEventDispatcherOwner এর সাথে সামঞ্জস্যপূর্ণ NavigationEventDispatcherOwner রিফ্যাক্টর করুন। ফাংশনটি এখন সরাসরি NavigationEventDispatcherOwner রিটার্ন করে। এই মালিককে একটি সাব-কম্পোজিশনে প্রদান করতে, CompositionLocalProvider ব্যবহার করুন। ( I874b2 , b/444446629 )

সংস্করণ 1.0.0-alpha09

২৪ সেপ্টেম্বর, ২০২৫

androidx.navigationevent:navigationevent-*:1.0.0-alpha09 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha09-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • Idle() ইনস্ট্যান্টিয়েট করার পরিবর্তে সরাসরি NavigationEventTransitionState.Idle singleton অবজেক্ট ব্যবহার করুন। ( 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 (gesture progress এর জন্য) এবং 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 ক্লাসটি চালু করুন। এটি অঙ্গভঙ্গি অবস্থা থেকে আলাদা করে নেভিগেশন তথ্য ইতিহাস পর্যবেক্ষণের জন্য মূল API হিসেবে কাজ করবে। ( I81ca5 , b/444734264 )
  • NavigationEvent এখন @Immutable হিসেবে চিহ্নিত, যা Compose Compiler কে রিকম্পোজিশন অপ্টিমাইজ করার অনুমতি দেয়। ( If78c7 , b/444734264 )
  • navigationevent-compose হ্যান্ডলার API গুলি আপডেট করা হয়েছে। NavigationEventHandler এবং NavigationBackHandler (এবং ভেরিয়েন্ট) এখন একটি নতুন ওভারলোড সমর্থন করে যা একটি উত্তোলিত NavigationEventState s গ্রহণ করে। সরল ওভারলোডগুলি ( currentInfo গ্রহণ) সংরক্ষিত আছে এবং এখন অভ্যন্তরীণভাবে এই নতুন স্টেট মডেলটি ব্যবহার করে। ( Ic3251 , b/444734264 )
  • navigationevent-compose লাইব্রেরিতে নতুন @Stable NavigationEventState<T> স্টেট হোল্ডার যোগ করুন। এই অবজেক্টটি স্থানীয় ইতিহাসকে স্থানীয় অঙ্গভঙ্গির অবস্থার সাথে একত্রিত করে এবং rememberNavigationEventState এবং NavigationEventHandler মধ্যে প্রাথমিক লিঙ্ক হবে। ( Ifb69f , b/444734264 )
  • NavigationEventHandler এ একটি নতুন পাবলিক, রিড-ওনলি transitionState: TransitionState প্রোপার্টি যোগ করুন। হ্যান্ডলাররা এখন তাদের নিজস্ব ট্রানজিশন অবস্থা বজায় রাখে, যা বহিরাগত সিস্টেমগুলি পর্যবেক্ষণ করতে পারে। ( I9acd2 , b/444734264 )
  • নতুন TransitionState সিলড ক্লাস চালু করুন। এটি নেভিগেশন ইতিহাস থেকে আলাদাভাবে জেসচার স্টেট পর্যবেক্ষণের জন্য মূল API হিসেবে কাজ করবে। ( Id4beb , b/444734264 )
  • NavigationEventHandlercurrentInfo , backInfo , এবং forwardInfo পাবলিক, রিড-ওনলি প্রোপার্টি হিসেবে প্রকাশ করুন। ( Ia7636 , b/444734264 )
  • NavigationEventHandler এর বাস্তবায়নের জন্য এখন বেস কনস্ট্রাক্টরে একটি initialInfo: T মান প্রদান করতে হবে। ( Idcfea , b/444734264 )
  • OnBackInvokedInput OnBackInvokedOverlayInput অথবা OnBackInvokedDefaultInput দিয়ে প্রতিস্থাপন করুন। ( I5323f , b/428948766 )
  • NavigationEventState কে @Immutable হিসেবে চিহ্নিত করুন। এটি কম্পোজের কর্মক্ষমতা উন্নত করে নিশ্চিত করে যে এই অবস্থা পর্যবেক্ষণকারী কম্পোজেবলরা সঠিকভাবে রিকম্পোজিশন এড়িয়ে যেতে পারে। ( I399c8 )
  • NavigationEventInfo.NotProvided এর নাম পরিবর্তন করে NavigationEventInfo.None; রেফারেন্স আপডেট করুন। কোনও আচরণ পরিবর্তন হয়নি। ( I5e2d4 )
  • NavigationEventInfo এখন @Immutable হিসেবে চিহ্নিত, যা Compose Compiler কে রিকম্পোজিশন অপ্টিমাইজ করার অনুমতি দেয়। ( I7c112 )
  • ব্যাক কমপ্লিশন ফলব্যাকের জন্য মজাদার ইন্টারফেস সহ জাভা এরগনোমিক্স উন্নত করুন। ( I8a860 )
  • onHasEnabledHandlerChanged এর নাম পরিবর্তন করে onHasEnabledHandlersChanged করুন। এটি স্পষ্ট করে যে কলব্যাক শুধুমাত্র একজনের নয়, সমস্ত হ্যান্ডলারের সম্মিলিত সক্ষমতার অবস্থা সম্পর্কে রিপোর্ট করে। ( I1af61 , b/443711297 )
  • NavigationEventDispatcher; থেকে hasEnabledHandler() সরান; পরিবর্তে NavigationEventInput.onHasEnabledHandlersChanged ব্যবহার করুন। ( Idef72 , b/443711297 )
  • নেভিগেশন ইতিহাসের পরিবর্তন সম্পর্কে শ্রোতাদের অবহিত করার জন্য NavigationEventInputonInfoChanged কলব্যাক যোগ করুন। এটি বর্তমান, পিছনে এবং এগিয়ে থাকা স্ট্যাকের সম্পূর্ণ প্রসঙ্গ প্রদান করে, যা ইনপুটগুলিকে প্রাসঙ্গিক তথ্যের প্রতি প্রতিক্রিয়া জানাতে সক্ষম করে। ( 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 )
  • নেভিগেশন হ্যান্ডলার চুক্তি প্রয়োগ করুন। যদি আপনার 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

১০ সেপ্টেম্বর, ২০২৫

androidx.navigationevent:navigationevent-*:1.0.0-alpha08 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha08-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • একটি ল্যাম্বডা-ভিত্তিক NavigationEventHandler API চালু করুন যা Flow-ভিত্তিক হ্যান্ডলারের পরিবর্তে কাজ করে। ফ্লো সংগ্রহের পরিবর্তে সহজ কলব্যাক দিয়ে ব্যাক এবং ফরোয়ার্ড জেসচার পরিচালনা করুন, বয়লারপ্লেট হ্রাস করুন এবং বাতিলকরণের সমস্যা এড়ান। লক্ষ্যযুক্ত সুবিধা API হিসাবে NavigationBackHandler এবং NavigationForwardHandler প্রদান করুন। Flow-ভিত্তিক NavigationEventHandler সরান; নতুন কলব্যাকগুলিতে স্থানান্তর করুন। ( I23bac , b/436248277 )
  • প্যাসিভ লিসেনারের জন্য সম্মিলিত ব্যাক তথ্যের মাধ্যমে সম্পূর্ণ নেভিগেশন ব্যাক স্ট্যাক অ্যাক্সেস করার অনুমতি দিন। সর্বাধিক কলব্যাকের মধ্যে সীমাবদ্ধ না থেকে প্রিভিউ এবং নেস্টেড নেভিগেশন ইতিহাস রেন্ডার করার জন্য UI গুলিকে সক্ষম করুন। ( I7a510 , b/436248277 )
  • নেস্টেড হ্যান্ডলারের সাহায্যে নেভিগেশন অবস্থা স্পষ্ট করতে এবং ফরোয়ার্ড নেভিগেশন সমর্থন করার জন্য একটি স্পষ্ট ব্যাক/কারেন্ট/ফরোয়ার্ড মডেল প্রবর্তন করুন। ( Ib86da , b/420443609 )
  • onForward* পদ্ধতি যোগ করুন এবং NavigationEventCallbackisForwardEnabled । ( Ic100f , b/436248290 )
  • NavigationEventInput এ ফরোয়ার্ড নেভিগেশন সাপোর্ট যোগ করুন। ( I5734b )

API পরিবর্তনগুলি

  • TestNavigationEventCallback দিয়ে ফরোয়ার্ড নেভিগেশন ইভেন্টের পরীক্ষা সক্ষম করুন। isForwardEnabled এবং onForward* হুক ব্যবহার করুন। ( I21fb5 , b/420443609 )
  • NavEventonEvent* কলব্যাকের নাম পরিবর্তন করে onBack* করুন। ( I228b3 , b/436248290 )
  • SwipeEdge একটি ইনলাইন ক্লাসে রূপান্তর করুন। ( Id5e01 )
  • জাভার সাথে navigationevent লাইব্রেরি ইন্টারঅপারেবল করুন। সমস্ত পাবলিক API এখন জাভা কোড থেকে সম্পূর্ণরূপে অ্যাক্সেসযোগ্য, যা মিশ্র-ভাষা বা জাভা-কেবল প্রকল্পগুলিতে নিরবচ্ছিন্ন ইন্টিগ্রেশন সক্ষম করে। ( Ibc944 , I5465f , I9fb1e , b/440532890 b/443040294 )
  • NavigationEventCallback নাম পরিবর্তন করে NavigationEventHandler করে API ভূমিকা স্পষ্ট করুন। এই পরিবর্তনটি মাল্টি-স্টেজ নেভিগেশন জেসচার পরিচালনার জন্য ক্লাসের উদ্দেশ্যকে আরও ভালভাবে প্রতিফলিত করে। সংশ্লিষ্ট addCallback পদ্ধতিটি এখন addHandler । ( I2492a , b/443040331 )

বাগ ফিক্স

  • ফরোয়ার্ড নেভিগেশনে ব্যাক ফলব্যাক চালানো থেকে বিরত রাখুন। ( I74814 , b/436248290 )
  • ভবিষ্যদ্বাণীমূলক ফরোয়ার্ড নেভিগেশনের জন্য সমর্থন যোগ করুন। NavigationEvent API গুলি এখন পিছনে এবং সামনে উভয় অঙ্গভঙ্গি পরিচালনা করে, উভয় নেভিগেশন দিকনির্দেশের জন্য সামঞ্জস্যপূর্ণ অ্যানিমেশন সক্ষম করে। ( 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-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • 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 এর যেকোনো স্থান থেকে অঙ্গভঙ্গির অবস্থার পরিবর্তনগুলি নিষ্ক্রিয়ভাবে শুনতে পারবেন । এটি ভবিষ্যদ্বাণীমূলক ব্যাক এবং অন্যান্য অঙ্গভঙ্গি-চালিত নেভিগেশনের জন্য প্রসঙ্গ-সচেতন অ্যানিমেশন সক্ষম করে।

এই বৈশিষ্ট্যটির দুটি অংশ রয়েছে:

  1. তথ্য প্রদান - কাস্টম ডেটা বহন করতে NavigationEventInfo ব্যবহার করুন।
  2. কনজিউমিং স্টেট - অঙ্গভঙ্গির অগ্রগতি এবং প্রসঙ্গ পর্যবেক্ষণ করতে dispatcher.state ( NavigationEventState ) ব্যবহার করুন।
  • NavigationEventCallback এখন setInfo(currentInfo, previousInfo) পদ্ধতি ব্যবহার করে একটি কলে ( I1d5e7 , b/424470518 ) অঙ্গভঙ্গির প্রসঙ্গ সেট করা যায়।
  • NavigationEventHandler একটি নতুন ওভারলোড যোগ করে যা currentInfo এবং previousInfo গ্রহণ করে, যা এটিকে Compose অ্যাপে ( I6ecd3 , b/424470518 ) প্রসঙ্গ সরবরাহের জন্য প্রাথমিক API করে তোলে।

উদাহরণ:

  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     } } 

API পরিবর্তনগুলি

  • 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 )
  • NavigationEventInputHandler একটি abstract ক্লাসে পরিণত করা হয়েছে যাতে পূর্ববর্তী AbstractNavigationEventInputHandler DirectNavigationEventInputHandler ( Iadde5 , Ifed40 I3897c , b/432616296 , b/435416924 ) এ একটি বাস্তবায়নের মাধ্যমে প্রতিস্থাপন করা যায়।
  • NavigationEventInputHandlersend* ফাংশনগুলির উপসর্গগুলির নাম পরিবর্তন করে handle* করা হয়েছে। ( Iffcaf )
  • OnBackInvokedInputHandler এখন নতুন abstract NavigationInputHandler প্রসারিত করে। ( Ib45aa )
  • NavigationEventDispatcherOwner একটি প্যারেন্ট ডিসপ্যাচারের জন্য পরিবর্তন করা হয়েছে যেখানে আপনাকে একটি রুট ডিসপ্যাচার তৈরি করতে স্পষ্টভাবে null পাস করতে হবে। ( Ia6f64 , b/431534103 )

বাগ ফিক্স

  • NavigationEventDispatcher.dispose() এ সংগ্রহের কপি এড়িয়ে দক্ষতা উন্নত করা হয়েছে। ( I4ab09 )
  • NavigationEventHandler তার সক্রিয় অবস্থায় পরিবর্তনের ক্ষেত্রে সঠিকভাবে সাড়া না দেওয়ার ক্ষেত্রে একটি সমস্যা সমাধান করা হয়েছে। ( Ia5268 , I19bec , I5be5c , b/431534103 )

ডক্স আপডেট

  • KDocs for NavigationEvent সম্প্রসারিত হয়েছে যাতে এটি একটি ইউনিফাইড ইভেন্ট র‍্যাপার হিসেবে এর ভূমিকা স্পষ্ট করে এবং বিভিন্ন ধরণের নেভিগেশন (অঙ্গভঙ্গি, ক্লিক) জুড়ে সম্পত্তির আচরণের বিস্তারিত বর্ণনা প্রদান করা হয়েছে। ( I91e8d )
  • সিস্টেম ব্যাক হ্যান্ডলিং কম্পোজ API ( 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-এর স্ট্রাকচারাল হাইয়ারিটি প্রতিফলিত করে জটিল কম্পোজ 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 প্রপার্টি এখন তার সংশ্লিষ্ট ডিসপ্যাচারের সক্রিয় অবস্থা মেনে চলে। এর অর্থ হল একটি কলব্যাক কেবল তখনই সক্রিয় বলে বিবেচিত হবে যদি কলব্যাক নিজেই এবং এর ডিসপ্যাচার (এর পূর্বসূরীদের সহ) উভয়ই সক্রিয় থাকে, যা কলব্যাক অ্যাক্টিভেশনের উপর ধারাবাহিক শ্রেণিবদ্ধ নিয়ন্ত্রণ নিশ্চিত করে। ( 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 Composable চালু করব যা aosp/3692572 তে Compose UI এর মধ্যে একটি চাইল্ড ডিসপ্যাচারকে স্বয়ংক্রিয়ভাবে পরিচালনা করবে। তবে, এই পরিবর্তনটি বর্তমান রিলিজ কাটে অন্তর্ভুক্ত হয়নি এবং পরবর্তীটির জন্য পরিকল্পনা করা হয়েছে।

নেভিগেশন টেস্টিং লাইব্রেরি

  • navigationevent লাইব্রেরির জন্য ডেডিকেটেড টেস্টিং ইউটিলিটি প্রদানের জন্য navigationevent-testing মডিউল যোগ করুন। ( 0e50b6 )
  • পরীক্ষার জন্য TestNavigationEventCallback জাল ইউটিলিটি ক্লাস যোগ করুন। এটি কলব্যাক পদ্ধতির কল রেকর্ড করে এবং যাচাইকরণ সমর্থন করার জন্য প্রাপ্ত NavigationEvent আইটেমগুলি সংরক্ষণ করে। ( 4a0246 )
  • নেভিগেশন ইভেন্ট প্রক্রিয়াকরণের জন্য ইউনিট পরীক্ষা সহজ করে, ডিফল্ট মান সহ NavigationEvent ইনস্ট্যান্স তৈরি করতে TestNavigationEvent জাল ইউটিলিটি ফাংশন যোগ করুন। ( 3b63f5 )
  • পরীক্ষার জন্য TestNavigationEventDispatcherOwner জাল ইউটিলিটি ক্লাস যোগ করুন। এটি পরীক্ষায় ইন্টারঅ্যাকশন যাচাইকরণ সমর্থন করার জন্য ফলব্যাক এবং সক্রিয়-অবস্থা-পরিবর্তিত ইভেন্ট গণনা ট্র্যাক করে। ( c8753e )

API পরিবর্তনগুলি

  • KMP কমন কোডে উপলব্ধ করার জন্য NavigationEventInputHandler androidMain থেকে 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 ব্যবহার করা হয়েছে এবং Compose কনভেনশনের সাথে মেলে একটি commonStubs টার্গেট যোগ করা হয়েছে। JetBrains দ্বারা পরিবর্তনের অনুরোধ করা হয়েছে । ( f60c79 )
  • সঠিক স্টাব জেনারেশন নিশ্চিত করার জন্য কোটলিন/নেটিভের জন্য কম্পোজ কম্পাইলার প্লাগইনের স্থির প্রয়োগ। পাবলিক API বা আচরণের উপর কোনও প্রভাব পড়বে না। ( 1890c9 )

সংস্করণ 1.0.0-alpha03

১৮ জুন, ২০২৫

androidx.navigationevent:navigationevent-*:1.0.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • navigationevent লাইব্রেরিতে জেটপ্যাক কম্পোজ বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য একটি নতুন navigationevent-compose মডিউল চালু করা হয়েছে। ( 980d78 )
  • NavigationEvent Compose একটি নতুন LocalNavigationEventDispatcherOwner স্থানীয় রচনা যোগ করেছে। এটি বর্তমান রচনায় উপলব্ধ কিনা তা আরও ভালভাবে নির্ধারণ করার জন্য একটি বাতিলযোগ্য মান প্রদান করে। অন্তর্নিহিত মালিক খুঁজে না পেলে NavigationEventHandler এখন একটি ত্রুটি নিক্ষেপ করবে। ( 62ffda )
  • NavigationEvent Compose (পূর্বাভাসমূলক ব্যাক জেসচার) ইভেন্টগুলি পরিচালনা করার জন্য একটি নতুন NavigationEventHandler Composable যোগ করেছে। এটি 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   } } 

API পরিবর্তনগুলি

  • প্রতিটি NavigationEventCallback এখন একবারে শুধুমাত্র একটি NavigationEventDispatcher দিয়ে নিবন্ধিত হতে পারে; এটি একাধিক dispatcher-এ যোগ করলে একটি IllegalStateException তৈরি হয়। মনে রাখবেন যে এই আচরণটি OnBackPressedDispatcher থেকে আলাদা, যা একাধিক dispatcher-এর অনুমতি দেয়। ( e82c19 )
  • নেভিগেশনের সময় মিউটেশন রোধ করার জন্য isPassThrough একটি val তৈরি করা হয়েছে, যা NavigationEvent এর ডিসপ্যাচিং ভেঙে দিতে পারে। ( I0b287 )

সংস্করণ 1.0.0-alpha02

৪ জুন, ২০২৫

androidx.navigationevent:navigationevent-*:1.0.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha02-এ এই কমিটগুলি রয়েছে।

API পরিবর্তনগুলি

  • NavigationEventDispatcher এর সেকেন্ডারি কনস্ট্রাক্টরকে ডিফল্ট আর্গুমেন্ট দিয়ে প্রতিস্থাপন করুন। ( I716a0 )
  • NavigationEventCallback থেকে অগ্রাধিকার সম্পত্তি সরান। পরিবর্তে NavigationEventDispatcher.addCallback() এ অগ্রাধিকার দিন। ( I13cae )

বাগ ফিক্স

  • NavigationEventCallback.remove() কল করার সময় ক্লোজেবলের অভ্যন্তরীণ তালিকা একই সাথে পরিবর্তন করার কারণে যে ConcurrentModificationException ঘটতে পারে তা ঠিক করা হয়েছে। ( b/420919815 )

সংস্করণ 1.0.0-alpha01

২০ মে, ২০২৫

androidx.navigationevent:navigationevent-*:1.0.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha01-এ এই কমিটগুলি রয়েছে।

নতুন বৈশিষ্ট্য

  • androidx.navigationevent লাইব্রেরি সিস্টেম ব্যাক এবং প্রেডিক্টিভ ব্যাক হ্যান্ডেল করার জন্য একটি KMP-first API প্রদান করে। NavigationEventDispatcher সিস্টেম ব্যাক ইভেন্ট গ্রহণের জন্য এক বা একাধিক NavigationEventCallback ইনস্ট্যান্স নিবন্ধনের জন্য একটি সাধারণ API হিসেবে কাজ করে।
  • এই স্তরটি androidx.activity তে পূর্বে প্রকাশিত API-গুলির নীচে অবস্থিত এবং উচ্চ স্তরের উপাদানগুলিতে Activity API-গুলি ব্যবহার করার জন্য অথবা সরাসরি Android ফ্রেমওয়ার্ক OnBackInvokedDispatcher API-গুলি ব্যবহার করার জন্য একটি কম মতামতযুক্ত প্রতিস্থাপন হিসাবে লক্ষ্য করা হয়। androidx.activity API-গুলি Activity 1.12.0-alpha01 এর অংশ হিসাবে Navigation Event API-গুলির উপরে পুনর্লিখন করা হয়েছে।