নেভিগেশন ইভেন্ট
সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | প্রার্থী মুক্তি | বিটা রিলিজ | আলফা রিলিজ |
---|---|---|---|---|
30 জুলাই, 2025 | - | - | - | 1.0.0-আলফা05 |
নির্ভরতা ঘোষণা করা
নেভিগেশন ইভেন্টের উপর নির্ভরতা যোগ করতে, আপনাকে অবশ্যই আপনার প্রকল্পে Google Maven সংগ্রহস্থল যোগ করতে হবে। আরও তথ্যের জন্য Google এর Maven সংগ্রহস্থল পড়ুন।
আপনার অ্যাপ বা মডিউলের জন্য build.gradle
ফাইলে আপনার প্রয়োজনীয় আর্টিফ্যাক্টগুলির জন্য নির্ভরতা যোগ করুন:
গ্রোভি
dependencies { implementation "androidx.navigationevent:navigationevent:1.0.0-alpha05" }
কোটলিন
dependencies { implementation("androidx.navigationevent:navigationevent:1.0.0-alpha05") }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, বিল্ড নির্ভরতা যুক্ত করুন দেখুন।
প্রতিক্রিয়া
আপনার প্রতিক্রিয়া জেটপ্যাককে আরও ভাল করতে সাহায্য করে। আপনি যদি নতুন সমস্যা আবিষ্কার করেন বা এই লাইব্রেরির উন্নতির জন্য ধারনা পান তাহলে আমাদের জানান। আপনি একটি নতুন তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরিতে বিদ্যমান সমস্যাগুলি দেখুন৷ আপনি তারকা বোতামে ক্লিক করে একটি বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
এই শিল্পকর্মের জন্য কোন রিলিজ নোট নেই.
সংস্করণ 1.0
সংস্করণ 1.0.0-alpha05
30 জুলাই, 2025
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- এ কম্পোজ UI-এর মধ্যে একটি শিশু প্রেরণকারীকে স্বয়ংক্রিয়ভাবে পরিচালনা করে। যাইহোক, এই পরিবর্তনটি এটিকে বর্তমান রিলিজ কাটে পরিণত করেনি এবং পরবর্তীটির জন্য পরিকল্পনা করা হয়েছে।
নেভিগেশন টেস্টিং লাইব্রেরি
-
navigationevent
লাইব্রেরির জন্য ডেডিকেটেড টেস্টিং ইউটিলিটি প্রদান করতেnavigationevent-testing
মডিউল যোগ করুন। ( 0e50b6 ) - পরীক্ষার জন্য
TestNavigationEventCallback
জাল ইউটিলিটি ক্লাস যোগ করুন। এটি কলব্যাক পদ্ধতির কল রেকর্ড করে এবং যাচাইকরণ সমর্থন করার জন্য প্রাপ্তNavigationEvent
আইটেম স্টোর করে। ( 4a0246 ) - ন্যাভিগেশন ইভেন্ট প্রক্রিয়াকরণের জন্য ইউনিট পরীক্ষা সহজ করে, ডিফল্ট মান সহ
NavigationEvent
দৃষ্টান্ত তৈরি করতেTestNavigationEvent
জাল ইউটিলিটি ফাংশন যোগ করুন। ( 3b63f5 ) - পরীক্ষার জন্য
TestNavigationEventDispatcherOwner
জাল ইউটিলিটি ক্লাস যোগ করুন। এটি পরীক্ষায় মিথস্ক্রিয়া যাচাইকে সমর্থন করার জন্য ফলব্যাক এবং সক্রিয়-রাষ্ট্র-পরিবর্তিত ইভেন্ট গণনাগুলি ট্র্যাক করে। ( c8753e )
এপিআই পরিবর্তন
- 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
2 জুলাই, 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha04
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha04 এই কমিট ধারণ করে।
বাগ ফিক্স
-
navigationevent-compose
জন্যimplementedInJetBrainsFork
ব্যবহার করা হয়েছে এবং কম্পোজ কনভেনশনের সাথে মেলে একটিcommonStubs
টার্গেট যোগ করেছে। JetBrains দ্বারা অনুরোধ করা পরিবর্তন. ( f60c79 ) - সঠিক স্টাব জেনারেশন নিশ্চিত করতে Kotlin/Native-এর জন্য কম্পোজ কম্পাইলার প্লাগইনের স্থির প্রয়োগ। পাবলিক API বা আচরণের উপর কোন প্রভাব নেই। ( 1890c9 )
সংস্করণ 1.0.0-alpha03
18 জুন, 2025
androidx.navigationevent:navigationevent-*:1.0.0-alpha03
প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha03-এ এই কমিট রয়েছে।
নতুন বৈশিষ্ট্য
-
navigationevent
লাইব্রেরিতে জেটপ্যাক কম্পোজ বৈশিষ্ট্য সমর্থন করার জন্য একটি নতুনnavigationevent-compose
মডিউল প্রবর্তন করেছে। ( 980d78 ) -
NavigationEvent
রচনা একটি নতুনLocalNavigationEventDispatcherOwner
স্থানীয় রচনা যোগ করেছে৷ এটি বর্তমান রচনায় উপলব্ধ কিনা তা আরও ভালভাবে নির্ধারণ করতে এটি একটি বাতিলযোগ্য মান প্রদান করে। অন্তর্নিহিত মালিক খুঁজে না পাওয়া গেলেNavigationEventHandler
এখন একটি ত্রুটি নিক্ষেপ করবে। ( 62ffda ) -
NavigationEvent
কম্পোজ একটি নতুন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
থেকে আলাদা, যা একাধিক প্রেরণকারীকে অনুমতি দেয়। ( e82c19 ) - নেভিগেশনের সময় মিউটেশন প্রতিরোধ করার জন্য একটি
val
isPassThrough
তৈরি করা হয়েছে, যা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-প্রথম API প্রদান করে।NavigationEventDispatcher
সিস্টেম ব্যাক ইভেন্টগুলি গ্রহণের জন্য এক বা একাধিকNavigationEventCallback
দৃষ্টান্ত নিবন্ধন করার জন্য একটি সাধারণ API হিসাবে কাজ করে। - এই স্তরটি
androidx.activity
এ পূর্বে প্রকাশিত API-এর নীচে বসে এবং উচ্চ স্তরের উপাদানগুলিতে কার্যকলাপ APIগুলি ব্যবহার করার জন্য বা সরাসরি Android ফ্রেমওয়ার্কOnBackInvokedDispatcher
APIগুলি ব্যবহার করার জন্য একটি কম মতামতযুক্ত প্রতিস্থাপনের লক্ষ্য। অ্যাক্টিভিটি 1.12.0-alpha01- এর অংশ হিসেবেandroidx.activity
API গুলিকে নেভিগেশন ইভেন্ট API-এর উপরে আবার লেখা হয়েছে।