নেভিগেশন৩
| সর্বশেষ আপডেট | স্থিতিশীল রিলিজ | রিলিজ প্রার্থী | বিটা রিলিজ | আলফা রিলিজ |
|---|---|---|---|---|
| ২৩ সেপ্টেম্বর, ২০২৬ | ১.২.০ | - | - | ১.৩.০-আলফা০১ |
নির্ভরতা ঘোষণা করা
navigation3-এর উপর নির্ভরতা যোগ করতে হলে, আপনাকে আপনার প্রজেক্টে গুগল মেভেন রিপোজিটরি যোগ করতে হবে। আরও তথ্যের জন্য গুগলের মেভেন রিপোজিটরি পড়ুন।
আপনার অ্যাপ বা মডিউলের build.gradle ফাইলে প্রয়োজনীয় আর্টিফ্যাক্টগুলোর ডিপেন্ডেন্সি যোগ করুন:
গ্রোভি
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.3.0-alpha01" implementation "androidx.navigation3:navigation3-ui:1.3.0-alpha01" }
কোটলিন
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.3.0-alpha01") implementation("androidx.navigation3:navigation3-ui:1.3.0-alpha01") }
নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, 'বিল্ড নির্ভরতা যোগ করুন ' দেখুন।
প্রতিক্রিয়া
আপনার মতামত জেটপ্যাককে আরও উন্নত করতে সাহায্য করে। আপনি যদি নতুন কোনো সমস্যা খুঁজে পান অথবা এই লাইব্রেরিটি উন্নত করার জন্য কোনো ধারণা থাকে, তবে আমাদের জানান। নতুন কোনো সমস্যা তৈরি করার আগে অনুগ্রহ করে এই লাইব্রেরির বিদ্যমান সমস্যাগুলো দেখে নিন। আপনি তারকা বোতামে ক্লিক করে কোনো বিদ্যমান সমস্যায় আপনার ভোট যোগ করতে পারেন।
আরও তথ্যের জন্য ইস্যু ট্র্যাকার ডকুমেন্টেশন দেখুন।
সংস্করণ ১.৩
সংস্করণ 1.3.0-alpha01
২৩ সেপ্টেম্বর, ২০২৬
androidx.navigation3:navigation3-*:1.3.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.3.0-alpha01-এ এই কমিটগুলো রয়েছে।
ত্রুটি সংশোধন
-
DeferredAnimatedContentএ স্থানান্তরিত করে এবং ট্রানজিশন হ্যান্ডঅফ সমস্যা সমাধান করেNavDisplayতে প্রেডিক্টিভ ব্যাক অ্যানিমেশন হ্যান্ডঅফ ঠিক করা হয়েছে। I145eaedd b/430807423
এই আর্টিফ্যাক্টটির জন্য কোনো রিলিজ নোট নেই।
ন্যাভিগেশন৩ সংস্করণ ১.২
সংস্করণ ১.২.০
২৩ সেপ্টেম্বর, ২০২৬
androidx.navigation3:navigation3-*:1.2.0 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
১.২.০ এখন স্থিতিশীল!
১.১.০ সংস্করণ থেকে গুরুত্বপূর্ণ পরিবর্তনসমূহ
ফলাফল এপিআই
- এই নতুন API-টি
LocalResultEventBusএবংResultEventBusNavEntryDecoratorদ্বারা প্রদত্তResultEventBusব্যবহার করেNavEntriesমধ্যে ফলাফল আদান-প্রদান করার সুযোগ দেয়। -
ResultEventBusNavEntryDecoratorবাইরে একটিResultEventBusহোইস্ট করার এবং সেটিকেrememberResultEventBusNavEntryDecoratorএ পাস করার সুবিধা দিতেrememberResultEventBusযোগ করা হয়েছে। - প্রদত্ত ফলাফলগুলো
ResultEventBus#conflateAsStateব্যবহার করে স্টেট হিসেবে অ্যাক্সেস করা যায়, অথবাResultEffectব্যবহার করে ফলাফলের ফ্লো হিসেবে সংগ্রহ করা যায়।
ডিপ লিঙ্ক এপিআই
Navigation3 এখন androidx.navigation3.runtime.deeplink এ Kotlin Multiplatform (KMP) গভীর লিঙ্কগুলিকে DeepLinkRequest , DeepLinkUri , এবং DeepLinkMatcher এর মাধ্যমে সমর্থন করে৷
-
DeepLinkRequestএবংRequestExtras: একটিDeepLinkUri, একটি URI স্ট্রিং, বা একটি AndroidIntentথেকে তৈরি একটি ডিপ লিঙ্ক অনুরোধকে বোঝায়।requestExtrasDSL এবংRequestExtrasKey<T>দিয়ে তৈরি টাইপ-সেফRequestExtrasকন্টেইনার ব্যবহার করে অতিরিক্ত অনুরোধ মেটাডেটা সংযুক্ত করা যেতে পারে। -
DeepLinkMatcher: এমন একটি ডিপ লিঙ্ককে বোঝায় যা একটিDeepLinkRequestসাথে মেলানো যায়। প্রতিটি ম্যাচার ইনস্ট্যান্স সেই নেভিগেশন কী-এর সাথে যুক্ত থাকে যা এই ডিপ লিঙ্কটিকে সমর্থন করে। একটি নেভিগেশন কী একাধিক ম্যাচারের সাথে যুক্ত থাকতে পারে। যদি ম্যাচ সফল হয়, তাহলেDeepLinkMatcher.matchকল করলে একটিMatchResultরিটার্ন হবে, যাতে সংশ্লিষ্ট নেভিগেশন কী-টি থাকবে।DeepLinkMatcherদুটি ডিফল্ট ইমপ্লিমেন্টেশন রয়েছে:Uriউপর ভিত্তি করে ডিপ লিঙ্ক মেলানোর জন্যUriDeepLinkMatcher, এবং শুধুমাত্রDeepLinkMatcher.Filterব্যবহার করে বুলিয়ান দ্বারা মেলানো ডিপ লিঙ্ক মেলানোর জন্যStaticKeyDeepLinkMatcher। -
BackStackMatcher: একটিDeepLinkMatcherযা একটি সফল ডিপ লিঙ্ক ম্যাচের পর একটি সংশ্লেষিত ব্যাক স্ট্যাক তৈরি করে।BackStackMatcherDeepLinkMatcher.withBackStackএক্সটেনশন ফাংশনের মাধ্যমে তৈরি করা যায়।
ভবিষ্যদ্বাণীমূলক ব্যাক হ্যান্ডলিং
- প্রেডিক্টিভ ব্যাক হ্যান্ডলিং (
onBackCompletedএবংonBackCancelled)-এর সাথেSceneStateসংযুক্ত করার প্রক্রিয়া সহজ করতেNavigationBackHandlerএবংrememberNavigationEventStateযোগ করা হয়েছে। এর ফলে কাস্টম UI কম্পোনেন্টগুলো ম্যানুয়ালি ব্যাক স্ট্যাক ডেল্টা গণনা না করেই স্ট্যান্ডার্ড ব্যাক নেভিগেশন এবং প্রেডিক্টিভ ব্যাক জেসচার সমর্থন করতে পারে। - উন্নত প্রেডিক্টিভ ব্যাক ট্রানজিশন, যার মধ্যে ফরোয়ার্ড অ্যানিমেশনের মাঝপথে ট্রিগার করা প্রেডিক্টিভ ব্যাক জেসচারের সাপোর্ট অন্তর্ভুক্ত রয়েছে।
অন্যান্য পরিবর্তন
-
NavEntry.contentKeyএখন ডিফল্টরূপেkey.toString()এবংkey::class.toString()এর একটি সংমিশ্রণ হিসেবে ব্যবহৃত হয়, যা বিভিন্ন ইন্টারফেসে একই সরল নাম থাকাdata objectকীগুলির মধ্যে সংঘর্ষ প্রতিরোধ করে। -
EntryProviderএখন কী টাইপের চেয়ে কী ইনস্ট্যান্সের উপর ভিত্তি করে ম্যাচিংকে অগ্রাধিকার দেয়। -
Sceneইমপ্লিমেন্টেশনগুলো যেনdata classহয় অথবাequalsওhashCodeইমপ্লিমেন্ট করে, তা নিশ্চিত করতে একটি লিন্ট চেক যোগ করা হয়েছে।
সংস্করণ 1.2.0-rc01
০৯ সেপ্টেম্বর, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- ডিপ লিঙ্ক ইউআরআই প্যাটার্নে সদৃশ প্লেসহোল্ডার নাম নিষিদ্ধ করুন। ( I8985c , b/522343165 )
সংস্করণ 1.2.0-beta01
২৬ আগস্ট, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-beta01-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
-
DeepLinkRequest.extrasMap<String, Any>থেকে রিফ্যাক্টর করেRequestExtrasনামে একটি নতুন টাইপ-সেফ ম্যাপ-সদৃশ ক্লাসে পরিণত করা হয়েছে, যাRequestExtrasKey<T>থেকেTএর জোড়া সংরক্ষণ করে।requestExtrasDSL ব্যবহার করেRequestExtrasইনস্ট্যানশিয়েট করা যায়। ( Ic929d , b/543883369 )
বাগ সংশোধন
- একটি সমস্যার সমাধান করা হয়েছে যেখানে সামনে যাওয়ার সময় সক্রিয় হওয়া প্রেডিক্টিভ ব্যাক জেসচার, সোয়াইপের অগ্রগতির প্রতিক্রিয়ায় অ্যানিমেট হতো না। এখন থেকে প্রেডিক্টিভ ব্যাক সঠিকভাবে অ্যানিমেট হবে এবং সম্পন্ন হবে। ( Icdcb0 , b/456218398 )
-
Sceneইমপ্লিমেন্টেশনগুলো হয় ডেটা ক্লাস, অথবা equals এবং hashcode ইমপ্লিমেন্ট করে, এটি নিশ্চিত করার জন্য একটি লিন্ট চেক যোগ করা হয়েছে, যাতে প্রয়োজন অনুযায়ী একইSceneব্যবহৃত হয়। ( Ibdf0d , b/542316099 ) -
NavEntry.contentKeyএখন ডিফল্টরূপেkey.toString()এবংkey::class.toString()এর একটি সংমিশ্রণ হিসেবে ব্যবহৃত হয়। এটি নিশ্চিত করে যে, একই নামের কিন্তু ভিন্ন ইন্টারফেস ইমপ্লিমেন্ট করা ডেটা অবজেক্টগুলোর আর একইcontentKeyথাকবে না। তবে, JS প্ল্যাটফর্মেরkey::classসম্পূর্ণ নামের পরিবর্তে শুধুমাত্র সাধারণ ক্লাসের নাম রিটার্ন করে, তাই একই নামের ডেটা অবজেক্টগুলোর জন্য JS প্ল্যাটফর্মের এখনও কাস্টমcontentKeyইমপ্লিমেন্ট করা উচিত। ( I1fbbb , b/512534342 ) - একাধিক পপ ট্রানজিশন চলমান থাকা অবস্থায় দ্রুত ব্যাক নেভিগেশনের জন্য ব্যবহৃত ডুপ্লিকেট কী-এর কারণে
SaveableStateProviderদ্বারা নিক্ষিপ্তIllegalArgumentExceptionসংশোধন করা হয়েছে। ( I4d728 , b/516312097 )
সংস্করণ ১.২.০-আলফা০৭
২৯ জুলাই, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-alpha07 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha07-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
- আরেকটি
DeepLinkMatcher.MatchResultর্যাপ করার জন্য একটি অ্যাবস্ট্রাক্টWrappedMatchResultক্লাস যোগ করা হয়েছে। এর ফলে কাস্টমাইজড ম্যাচ রেজাল্টের উপর আরেকটি লেয়ার করা যায়। ( I7d4dc , b/470282247 ) নতুন
BackStackMatcherক্লাস যোগ করা হয়েছে যা দুটি প্যারামিটার গ্রহণ করে: একটি ম্যাচিং ইনস্ট্যান্স এবং একটি বিল্ডার ল্যাম্বডা যা ইনপুট ম্যাচারের ম্যাচ ফলাফল প্রদান করে এবং একটি ব্যাক স্ট্যাক ফেরত দেয়। সফলভাবে ম্যাচ হলে,BackStackMatcherএকটিBackStackMatchResultফেরত দেয় যাWrappedMatchResultএক্সটেন্ড করে এবং এতে মূল ম্যাচ ফলাফলের সাথে ল্যাম্বডা দিয়ে তৈরি ব্যাক স্ট্যাকটি থাকে।BackStackMatcherশুধুমাত্র নতুনDeepLinkMatcher.withBackStackএক্সটেনশন ফাংশন দিয়ে তৈরি করা যাবে। ( Ibf987 , b/470282247 )একটি অ্যাবস্ট্রাক্ট
DeepLinkSerializerক্লাস যোগ করা হয়েছে যাKSerializerএক্সটেন্ড করে এবংvalue : Tভ্যালুকেStringহিসেবে এনকোড ও ডিকোড করে।DeepLinkSerializerনন-প্রিমিটিভ ডিপ লিঙ্ক আর্গুমেন্টগুলোকে সিরিয়ালাইজ করতে ব্যবহার করা যায়।rememberSaveableএবংrememberNavBackStackসাথে সামঞ্জস্যপূর্ণ। ( Id3c9f , b/470282247 )DeepLinkMatcherout R : DeepLinkMatcher.MatchResult<T>, যাতে ডেভেলপাররা টাইপ কাস্টিং ছাড়াইDeepLinkMatcher.match()দ্বারা রিটার্ন করা সাবক্লাসডMatchResultএর প্রোপার্টিগুলো অ্যাক্সেস করতে পারেন। ( I693d3 , b/470282247 )DeepLinkMatcher.MatchResult'sT ঊর্ধ্বসীমাAny?থেকেAnyতে পরিবর্তিত হয়েছে। ( I6bf1a )DeepLinkRequestকনস্ট্রাক্টরের ফিল্ডuriএখন থেকে ডিফল্টভাবে null হবে। সেকেন্ডারি কনস্ট্রাক্টরেরuriStringএর নাম পরিবর্তন করেuriরাখা হয়েছে। ( Ia0f14 , b/522194187 )
বাগ সংশোধন
-
ResultEffectএখন সর্বশেষonResultল্যাম্বডা ক্যাপচার করতেrememberUpdatedStateব্যবহার করে। ( I7d2a3 , b/531709234 ) - খালি পাথ সেগমেন্টের জন্য ডিপ লিঙ্ক ম্যাচিং ঠিক করা হয়েছে। যদি আর্গুমেন্টের টাইপ স্ট্রিং হয়, তাহলে খালি পাথটিকে একটি খালি স্ট্রিং ভ্যালু হিসেবে গণ্য করা হবে। অন্যথায়, খালি পাথটিকে কোনো ভ্যালু প্রদান করা হয়নি বলে গণ্য করা হবে এবং এটি ডিফল্ট ভ্যালুতে ফিরে যাবে। যদি কোনো ডিফল্ট ভ্যালু না থাকে, তাহলে ম্যাচিং ব্যর্থ হবে। ( I56575 , b/535298128 )
-
DeepLinkRequest.uriতে খালি কোয়েরি ভ্যালুর জন্য সাপোর্ট যোগ করা হয়েছে। যদি আর্গুমেন্টটি String টাইপের হয়, তাহলে খালি ভ্যালুটিকে একটি আক্ষরিক খালি স্ট্রিং হিসেবে গণ্য করা হবে। অন্যথায়, খালি ভ্যালুটিকে কোনো ভ্যালু প্রদান করা হয়নি বলে গণ্য করা হবে এবং ম্যাচিং ডিফল্ট ভ্যালুতে ফিরে যাওয়ার চেষ্টা করবে। যদি কোনো ডিফল্ট ভ্যালু না থাকে, তাহলে ম্যাচিং ব্যর্থ হবে। ( I30343 , b/535127459 ) -
EntryProviderএখন কী টাইপের চেয়ে কী ইনস্ট্যান্সের উপর ভিত্তি করে ম্যাচিংকে অগ্রাধিকার দেয়। ( Ib5ec9 , b/533331924 ) -
SceneStateএখন সর্ববৃহৎ নন-ওভারলে সিন থেকে পূর্ববর্তী সিনগুলো সঠিকভাবে গণনা করে। ( I91915 , b/513630541 )
সংস্করণ ১.২.০-আলফা০৬
১৫ জুলাই, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-alpha06 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha06-এ এই কমিটগুলো রয়েছে।
বাগ সংশোধন
-
UriDeepLinkMatcherইউআরআই ফ্র্যাগমেন্ট সংক্রান্ত ডকুমেন্টেশন সংশোধন করা হয়েছে, যাতে এটি স্পষ্ট হয় যে ওয়াইল্ডকার্ডযুক্ত ফ্র্যাগমেন্ট যেকোনো ইনপুটের সাথে মিলবে, কিন্তু ইনপুটটি আর্গুমেন্ট হিসেবে নিষ্কাশিত হবে না। ( I5ad9b , b/524677091 ) -
UriDeepLinkMatcherএকটি রিকোয়েস্টের সাথে ম্যাচ করতে ব্যর্থ হওয়ার সমস্যাটি সমাধান করা হয়েছে, যদি ইউআরআই প্যাটার্নে কোনো স্কিম না থাকে বা এটি ডাবল স্ল্যাশ দিয়ে শুরু না হয়। উদাহরণস্বরূপ,www.example.com/homeএখনhttp://www.example.com/homeএর সাথে ম্যাচ করবে। ( Ia6b65 , b/522791926 )
সংস্করণ ১.২.০-আলফা০৫
০১ জুলাই, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha05-এ এই কমিটগুলো রয়েছে।
নতুন এপিআই
- একটি
rememberResultEventBusএপিআই যোগ করা হয়েছে যা এমন একটিResultEventBusরিটার্ন করে, যাrememberResultEventBusNavEntryDecoratorএ পাস করা যায়। এর ফলেResultEventBusNavEntryDecoratorএর বাইরে একটিResultEventBusহোইস্ট করা যায়। ( Ia655b , b/516995400 )
ডিপলিঙ্ক অনুরোধ
- দুটি KMP-উপযোগী কনস্ট্রাক্টর যোগ করা হয়েছে - একটি DeepLinkUri গ্রহণ করে এবং অন্যটি একটি র স্ট্রিং ইউআরআই গ্রহণ করে। ( I3c088 , b/513200887 , b/522194187 )
- (শুধুমাত্র অ্যান্ড্রয়েডের জন্য) একটি কনস্ট্রাক্টর যোগ করা হয়েছে যা একটি
Intentগ্রহণ করে। ( Ia0498 , b/513200887 , b/522194187 ) - সমস্ত কনস্ট্রাক্টরের একটি অতিরিক্ত
extrasফিল্ড আছে, যেখানেMap<String, Any>ব্যবহার করে অতিরিক্ত অনুরোধের তথ্য সংযুক্ত করা যায়। ( If81d5 , b/513200887 ) - এক্সট্রাগুলির একটি ম্যাপ তৈরি করার জন্য একটি টাইপ-সেফ উপায় হিসেবে একটি নতুন
requestExtrasdsl যোগ করা হয়েছে। এই dsl-টিRequestExtrasKeyএবংAnyএর জোড়া সংরক্ষণ করার জন্য একটিputফাংশন প্রদান করে।Map<String, Any>.get(key)এক্সটেনশন ফাংশনটি একটিRequestExtrasKeyব্যবহার করে ম্যাপ থেকে ডেটা পড়ার জন্য ব্যবহার করা যেতে পারে ( I5091c , b/513200887 )। - (শুধুমাত্র অ্যান্ড্রয়েডের জন্য)
ActionExtrasKeyব্যবহার করে একটি এক্সট্রাস ম্যাপ তৈরি করার জন্যActionExtrasKeyএবংactionExtraফাংশন যোগ করা হয়েছে। ( Id0c90 , [b/513200887]) -
MimeTypeExtrasKeyব্যবহার করে একটি এক্সট্রাস ম্যাপ তৈরি করার জন্যMimeTypeExtrasKeyএবংmimeTypeExtraফাংশন যোগ করা হয়েছে। ( I85131 , b/513200887 )
ডিপলিঙ্কম্যাচার
-
DeepLinkMatcher.mimeTypeFilterএবংDeepLinkMatcher.actionFilterফাংশন যোগ করা হয়েছে, যাDeepLinkMatcher.Filtersতৈরি করে এবংmimeTypeবাactionদ্বারাDeepLinkRequestফিল্টার করে (শুধুমাত্র অ্যান্ড্রয়েডের জন্য)। উভয় ফিল্টারই স্ট্রিং সমতার ভিত্তিতে ম্যাচ করে এবং কেস-ইনসেনসিটিভ। ( Ie7e67 , b/513191950 )
এপিআই পরিবর্তন
ডিপলিঙ্ক অনুরোধ
-
fromActionফ্যাক্টরি ফাংশনটি সরানো হয়েছে। কোনো অ্যাকশনের সাথে যুক্ত রিকোয়েস্ট তৈরি করতে, নতুনDeepLinkRequest.extrasফিল্ডটি ব্যবহার করুন। ( Id0c90 , b/513200887 ) -
fromMimeTypeফ্যাক্টরি ফাংশনটি সরানো হয়েছে। কোনো mimeType-এর সাথে যুক্ত একটি অনুরোধ তৈরি করতে, নতুনDeepLinkRequest.extrasফিল্ডটি ব্যবহার করুন। ( I85131 , b/513200887 ) - (শুধুমাত্র অ্যান্ড্রয়েডের জন্য)
fromIntentফ্যাক্টরি ফাংশনটি সরানো হয়েছে। এর পরিবর্তে একটি নতুন কনস্ট্রাক্টর যোগ করা হয়েছে যা একটি Intent এবং extras ম্যাপ গ্রহণ করে। ( Ia0498 , b/513200887 , b/522194187 ) -
fromUriএবংfromUriStringফ্যাক্টরি ফাংশনগুলো সরানো হয়েছে। এগুলোর পরিবর্তে নতুন কনস্ট্রাক্টর আনা হয়েছে, যেগুলো হয় একটিDeepLinkUriঅথবা একটি র স্ট্রিং ইউআরআই গ্রহণ করে। ( Id5b6f , b/522194187 ) -
DeepLinkMatcher,DeepLinkMatcher.MatchResultএবং তাদের সাবক্লাসগুলো এখন একটি কোভেরিয়েন্ট T (আউট T) গ্রহণ করে, যার ফলে Matchers-এর সাথে ব্যবহৃত হায়ারারকিক্যাল কীগুলোর জন্য টাইপ কাস্টিং-এর প্রয়োজন হবে না। ( I1e453 , b/525094876 ) -
UriMatchResultকনস্ট্রাক্টরের `map` আর্গুমেন্টের প্যারামিটারটি এখন ডিফল্টরূপে একটি খালি ম্যাপ হবে। ( I3acdd ) -
DeepLinkMatcher.Filterঅ্যাবস্ট্রাক্ট ক্লাসটি এখন একটি ফাংশনাল ইন্টারফেস।filterকনস্ট্রাক্টর ফিল্ডটি সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তে সাবক্লাসে এটি সরাসরি পাস করতে হবে। ( I9eb7d , b/522194187 )
বাগ সংশোধন
- ল্যাম্বডা ভ্যালু সম্বলিত নেস্টেড মেটাডেটা আছে এমন কোনো এন্ট্রিতে পপ করার সময় পপ করা এন্ট্রিটি তাৎক্ষণিকভাবে অদৃশ্য হয়ে যাওয়ার সমস্যাটি সমাধান করা হয়েছে। ( Idb872 , b/520494430 )
-
UriDeepLinkMatcherসংশোধন করা হয়েছে যাতে ম্যাচিং করার সময় প্রয়োজনীয় আর্গুমেন্ট অনুপস্থিত থাকলে এটিMissingFieldExceptionথ্রো করার পরিবর্তে একটি nullUriMatchResultরিটার্ন করে। ( I5322f , b/524663005 ) - যে
UriDeeplinkMatcherhttps স্কিমের ইউআরআই থাকে, সেটিকে শুধুমাত্র সেইসব রিকোয়েস্টের সাথেই মেলানো যায় যেগুলোরও https স্কিম রয়েছে। ( Ibfe22 , b/522304329 ) - একটি
DeepLinkRequestএকটিUriDeepLinkMatcherসাথে মেলানোর সময়,httpস্কিমকেhttpsএর সাথে একটি সঠিক মিল হিসেবে সঠিকভাবে শনাক্ত করার জন্যUriDeepLinkMatcherসংশোধন করা হয়েছে। ( I3a62b , b/518804264 ) -
DeepLinkMatcher.MatchResultকম্পারেটরটি এখন দুটি ফলাফল সমান হলে ডিফল্টরূপে 0 রিটার্ন করে। ( I48ddb , b/518841353 ) - প্রয়োজনীয় আর্গুমেন্ট অনুপস্থিত থাকার কারণে ম্যাচ রিকোয়েস্ট ব্যর্থ হলে,
UriDeepLinkMatcherএখন থেকে এক্সেপশন থ্রো করার পরিবর্তে একটি নালUriMatchResultরিটার্ন করবে। ( I669a7 , b/470282247 , b/512923412 )
সংস্করণ 1.2.0-alpha04
০৩ জুন, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha04-এ এই কমিটগুলো রয়েছে।
বাগ সংশোধন
- ওভারলে অ্যানিমেশনের একটি সমস্যা সমাধান করা হয়েছে, যেখানে
ModalBottomSheetমতো নেস্টেড ওভারলেগুলো তার উপরের ওভারলেগুলো পপ করার সময় অপ্রত্যাশিতভাবে পুনরায় অ্যানিমেট হচ্ছিল। ( Ia2b9e , b/502624496 )
সংস্করণ 1.2.0-alpha03
১৯ মে, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha03-এ এই কমিটগুলো রয়েছে।
নতুন বৈশিষ্ট্য
নেভিগেশন ৩ এখন DeepLinkRequest এবং DeepLinkMatcher মাধ্যমে ডিপ লিঙ্ক সমর্থন করে।
DeepLinkRequestএকটি অনুরোধকৃত ডিপ লিঙ্ক, যাতে একটিDeepLinkUriএবং একটি ঐচ্ছিক mimeType বা action (শুধুমাত্র অ্যান্ড্রয়েডের জন্য) থাকে। এই নতুন ক্লাসের সাথে একটিuri, একটিmimeType, বা একটিactionব্যবহার করে ইনস্ট্যান্স তৈরি করার জন্য সহযোগী ফাংশনও রয়েছে। অ্যান্ড্রয়েড প্ল্যাটফর্মে একটি Intent থেকে অনুরোধ তৈরি করার জন্য একটি হেল্পারও আছে। ( Iaaac9 , b/470282247 )val uriOnlyRequest = DeepLinkRequest.fromUriString("https://sampledeeplink.com/home") val uriAndMimeRequest = DeepLinkRequest.fromUriString( "https://sampledeeplink.com/user/profile?id=123", "image/png" )DeepLinkMatcherএকটি ডিপ লিঙ্ককে প্রতিনিধিত্ব করে যা একটিDeepLinkRequestসাথে মেলানো যায়। প্রতিটি ম্যাচার ইনস্ট্যান্স সেই নেভিগেশন কী-এর সাথে যুক্ত থাকে যা এই ডিপ লিঙ্কটিকে সমর্থন করে। একটি নেভিগেশন কী একাধিক ম্যাচারের সাথে যুক্ত থাকতে পারে। যদি ম্যাচ সফল হয়, তাহলেDeepLinkMatcher.matchকল করলে একটিMatchResultরিটার্ন হবে, যাতে সংশ্লিষ্ট নেভিগেশন কী-টি থাকে।DeepLinkMatcherদুটি ডিফল্ট ইমপ্লিমেন্টেশন রয়েছে: Uri-এর উপর ভিত্তি করে ডিপ লিঙ্ক মেলানোর জন্যUriDeepLinkMatcher, এবং শুধুমাত্রDeepLinkMatcher.Filterব্যবহার করেBooleanদ্বারা মেলানো ডিপ লিঙ্ক মেলানোর জন্যStaticKeyDeepLinkMatcher। ( I3798e , b/470282247 )UriDeepLinkMatcherDeepLinkMatcherএর একটি বিশেষায়িত বাস্তবায়ন, যাDeepLinkUriএকটি Serializable নেভিগেশন কী-এর সাথে মিলিয়ে ডিপ লিঙ্ক পরিচালনা করে। এটি প্রিমিটিভ টাইপ বা প্রিমিটিভের সংগ্রহ, যেমন লিস্ট, অ্যারে এবং সেটের ডিপ লিঙ্ক আর্গুমেন্ট সমর্থন করে। ( I1520b , b/470282247 )@Serializable data class UserKey(val id: Int): NavKey // declare a deep link supported by UserKey val userMatcher = UriDeepLinkMatcher( uriPattern = "www.sampledeeplink.com/user?userId={id}", serializer = serializer<UserKey>() ) // handle a requested deep link with fallback key val key = userMatcher.match(deepLinkRequest)?.key ?: HomeKeyDeepLinkUriযোগ করা হয়েছে যাandroid.net.Uriএর একটি কোটলিন-মাল্টিপ্ল্যাটফর্ম সংস্করণ ( Id4725 , b/470282247 )
এপিআই পরিবর্তন
- Compose-এর compileSdk-এর সাথে মেলানোর জন্য
compileSdk 37এ উন্নীত করা হয়েছে।
বাগ সংশোধন
- একাধিক ওভারলে প্রদর্শনের সময়
AnimatedBottomSheetSampleএরIllegalArgumentExceptionসমস্যাটি সমাধান করা হয়েছে। নমুনাSceneStrategyএখন সর্বশেষ নন-OverlaySceneসঠিকভাবে গণনা করবে এবং এটিকে সমস্ত ওভারলে সিনের নিচে প্রদর্শন করবে। ( If2281 , b/506733412 ) -
NavigationEventডিপেন্ডেন্সি 1.1.1-এ আপগ্রেড করা হয়েছে, যা ইন্সপেকশন মোডে থাকাকালীন no-op NavigationEventHandler-কে সরিয়ে দেয় এবং অ্যান্ড্রয়েড স্টুডিও প্রিভিউতে Predictive Back সক্ষম করে। ( I487fd )
সংস্করণ 1.2.0-alpha02
২২ এপ্রিল, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha02-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
- বাতিল হওয়া ব্যাক জেসচার হ্যান্ডলিং সমর্থন করার জন্য
onBackনাম পরিবর্তন করেonBackCompletedকরুন এবং NavigationBackHandler-এonBackCancelledযোগ করুন। ( I92741 ) -
SceneStateব্যবহার করার সময় ব্যাক জেসচার এবং প্রেডিক্টিভ ব্যাক হ্যান্ডলিং সহজ করতেNavigationBackHandlerযোগ করুন। এটি ডেভেলপারদের ম্যানুয়ালি ব্যাক স্ট্যাক ডেল্টা গণনা না করেই স্ট্যান্ডার্ড ব্যাক নেভিগেশন এবং প্রেডিক্টিভ জেসচার সমর্থন করে এমন কাস্টম UI কম্পোনেন্ট আরও সহজে তৈরি করতে সাহায্য করে। ( I6a055 ) - প্রেডিক্টিভ ব্যাক হ্যান্ডলিং-এর সাথে
SceneStateসংযোগ সহজ করতেrememberNavigationEventStateযোগ করুন। ( Iae49c )
নতুন বৈশিষ্ট্য
- নতুন
ResultEventBusNavEntryDecoratorদ্বারা প্রদত্তLocalResultEventBusব্যবহার করে NavEntries-এর মধ্যে ফলাফল আদান-প্রদানের জন্য একটিResultEventBusAPI যোগ করা হয়েছে। প্রেরিত ফলাফলResultEventBus#conflateAsStateব্যবহার করে একটি স্টেট হিসেবে অথবাResultEffectব্যবহার করে ফলাফলের একটি ফ্লো হিসেবে মূল্যায়ন করা যেতে পারে।
সংস্করণ 1.2.0-alpha01
০৮ এপ্রিল, ২০২৬
androidx.navigation3:navigation3-*:1.2.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.2.0-alpha01-এ এই কমিটগুলো রয়েছে।
বাগ সংশোধন
-
OverlaySceneথেকেLocalNavAnimatedContentScopeঅ্যাক্সেস করলে এখন আরIllegalStateExceptionঘটবে না, কারণOverlayScenesএখন একটি no-opLocalAnimatedContentScopeপ্রদান করা হয়েছে। ( I2f00c , b/486067688 )
নেভিগেশন৩ সংস্করণ ১.১
সংস্করণ ১.১.৭
২৬ আগস্ট, ২০২৬
androidx.navigation3:navigation3-*:1.1.7 প্রকাশিত হয়েছে। সংস্করণ 1.1.7-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- একটি সমস্যার সমাধান করা হয়েছে যেখানে সামনে যাওয়ার সময় সক্রিয় হওয়া প্রেডিক্টিভ ব্যাক জেসচার, সোয়াইপের অগ্রগতির প্রতিক্রিয়ায় অ্যানিমেট হতো না। এখন থেকে প্রেডিক্টিভ ব্যাক সঠিকভাবে অ্যানিমেট হবে এবং সম্পন্ন হবে। ( Icdcb0 , b/456218398 )
সংস্করণ ১.১.৬
১২ আগস্ট, ২০২৬
androidx.navigation3:navigation3-*:1.1.6 প্রকাশিত হয়েছে। সংস্করণ 1.1.6-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
NavEntry.contentKeyএখন ডিফল্টরূপেkey.toString()এবংkey::class.toString()এর একটি সংমিশ্রণ হিসেবে ব্যবহৃত হয়। এটি নিশ্চিত করে যে, একই নামের কিন্তু ভিন্ন ইন্টারফেস ইমপ্লিমেন্ট করা ডেটা অবজেক্টগুলোর আর একইcontentKeyথাকবে না। তবে, JS প্ল্যাটফর্মেরkey::classসম্পূর্ণ নামের পরিবর্তে শুধুমাত্র সাধারণ ক্লাসের নাম রিটার্ন করে, তাই একই নামের ডেটা অবজেক্টগুলোর জন্য JS প্ল্যাটফর্মের এখনও কাস্টমcontentKeyইমপ্লিমেন্ট করা উচিত। ( I1fbbb , b/512534342 ) - ব্যাক স্ট্যাক থেকে দ্রুত পপ করার কারণে একই সাথে একাধিক পপ ট্রানজিশন চলমান থাকলে, কী-পুনরায় ব্যবহারের জন্য
SaveableStateHolderদ্বারা নিক্ষিপ্তIllegalArgumentExceptionসংশোধন করা হয়েছে। ( I4d728 , b/516312097 )
সংস্করণ ১.১.৫
২৯ জুলাই, ২০২৬
androidx.navigation3:navigation3-*:1.1.5 প্রকাশিত হয়েছে। সংস্করণ 1.1.5-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
entryProviderDSL এখন একটি কী ইনস্ট্যান্স দিয়ে তৈরিNavEntry(যেমনentry(key = userKey) { ... }একটি কী ক্লাস দিয়ে তৈরিNavEntry(যেমনentry<UserKey>{ ... }চেয়ে অগ্রাধিকার দেয়। ( Ib5ec9 , b/533331924 )
সংস্করণ ১.১.৪
০১ জুলাই, ২০২৬
androidx.navigation3:navigation3-*:1.1.4 প্রকাশিত হয়েছে। সংস্করণ 1.1.4-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
- ল্যাম্বডা ভ্যালু সম্বলিত নেস্টেড মেটাডেটা আছে এমন কোনো এন্ট্রিতে পপ করার সময় পপ করা এন্ট্রিটি তাৎক্ষণিকভাবে অদৃশ্য হয়ে যাওয়ার সমস্যাটি সমাধান করা হয়েছে। ( Idb872 , b/520494430 )
সংস্করণ ১.১.৩
১৭ জুন, ২০২৬
androidx.navigation3:navigation3-*:1.1.3 প্রকাশিত হয়েছে। সংস্করণ 1.1.3-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
ওভারলে অ্যানিমেশনের একটি সমস্যা সমাধান করা হয়েছে, যেখানে
ModalBottomSheetমতো নেস্টেড ওভারলেগুলো তার উপরের ওভারলেগুলো পপ করার সময় অপ্রত্যাশিতভাবে পুনরায় অ্যানিমেট হচ্ছিল। ( Ia2b9e , b/502624496 )NavigationEventডিপেন্ডেন্সি 1.1.2-এ আপগ্রেড করা হয়েছে, যা ইন্সপেকশন মোডে থাকাকালীন no-opNavigationEventHandlerকে সরিয়ে দিয়ে Android Studio প্রিভিউগুলিতে Predictive Back সক্ষম করেছে।
সংস্করণ ১.১.২
১৯ মে, ২০২৬
androidx.navigation3:navigation3-*:1.1.2 প্রকাশিত হয়েছে। সংস্করণ 1.1.2-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
NavigationEventডিপেন্ডেন্সি 1.1.1-এ আপগ্রেড করা হয়েছে, যা ইন্সপেকশন মোডে থাকাকালীন no-opNavigationEventHandlerসরিয়ে দিয়ে Android Studio প্রিভিউগুলিতে Predictive Back সক্ষম করেছে।
সংস্করণ ১.১.১
২২ এপ্রিল, ২০২৬
androidx.navigation3:navigation3-*:1.1.1 প্রকাশিত হয়েছে। সংস্করণ 1.1.1-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
OverlaySceneথেকেLocalNavAnimatedContentScopeঅ্যাক্সেস করলে এখন আরIllegalStateExceptionঘটবে না, কারণOverlayScenesএখন একটি no-opLocalAnimatedContentScopeপ্রদান করা হয়েছে। ( I2f00c , b/486067688 )
সংস্করণ ১.১.০
০৮ এপ্রিল, ২০২৬
androidx.navigation3:navigation3-*:1.1.0 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
১.১.০ এখন স্থিতিশীল!
১.০.০ সংস্করণ থেকে গুরুত্বপূর্ণ পরিবর্তনসমূহ
সিনগুলির মধ্যে শেয়ার্ড এলিমেন্ট - Navigation3 এখন সিনগুলিকে শেয়ার্ড এলিমেন্ট অবজেক্ট হিসাবে বিবেচনা করা সমর্থন করে। এর মানে হল, যখন সিনগুলি পরিবর্তিত হয়, তখন তাদের একটি মসৃণ রূপান্তর নিশ্চিত করা সম্ভব। আপনি NavDisplay অথবা rememberSceneState এ একটি SharedTransitionScope পাস করে এটি সক্রিয় করতে পারেন।
SceneDecoratorStrategy - সাধারণ UI কম্পোনেন্ট দিয়ে সিন সাজানো বা বিভিন্ন সিনের মধ্যে স্টেট শেয়ার করার মতো ব্যবহারের ক্ষেত্রগুলোকে সমর্থন করার জন্য SceneDecoratorStrategy এর প্রবর্তন।
NavMetadata DSL - Navigation3 এখন একটি নতুন টাইপ-সেফ মেটাডেটা ডিএসএল প্রদান করে। এই ডিএসএল-টি একটি নতুন MetadataKey ইন্টারফেস ব্যবহার করে, যা মেটাডেটা ম্যাপে সরবরাহ করতে ইচ্ছুক কী (key) এবং ভ্যালু (value) টাইপগুলো সংজ্ঞায়িত করার সুযোগ দেয়। এছাড়াও, এটি NavDisplay ট্রানজিশনের জন্য নতুন NavMetadataKeys যোগ করেছে, যাতে নতুন মেটাডেটা ডিএসএল-এর সাথে এগুলো ব্যবহার করে NavDisplay তে ট্রানজিশন যুক্ত করা যায়।
OverlayScene অ্যানিমেশন - OverlayScene ইন্টারফেসে একটি নতুন onRemoved সাসপেন্ডিং কলব্যাক রয়েছে। এই কলব্যাকটি সিন-এর সাথে যুক্ত কোনো কী ব্যাকস্ট্যাক থেকে সরিয়ে ফেলার পরে, কিন্তু কম্পোজিশন থেকে বেরিয়ে যাওয়ার আগে কল করা হয়। এর ফলে, ওভারলে সিনটি কম্পোজিশন থেকে সরিয়ে ফেলার আগেই onRemoved মধ্যে কল করা এক্সিট অ্যানিমেশনগুলো সম্পূর্ণ হতে পারে।
অন্যান্য পরিবর্তনসমূহ - NavDisplay এবং rememberSceneState এখন আগের then ইনফিক্স দ্বারা চেইন করা একক SceneStrategy প্যারামিটারের পরিবর্তে List<SceneStrategy> গ্রহণ করে। - আপনি এখন EntryProvider DSL-এর মাধ্যমে এন্ট্রি কী বিবেচনা করে ডায়নামিকভাবে মেটাডেটা যোগ করতে পারবেন।
সংস্করণ 1.1.0-rc01
২৫ মার্চ, ২০২৬
androidx.navigation3:navigation3-*:1.1.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
NavDisplayএখন নিশ্চিত করে যে ওভারলে-র নিচে প্রদর্শিত এন্ট্রিগুলিরLifecycleSTARTEDএ সীমাবদ্ধ থাকে। এটি নিশ্চিত করে যে ডায়ালগ ব্যবহার করার সময়ওdropUnlessResumedমতো API-গুলি কাজ করতে থাকে। ( If209f , b/483966071 ) -
NavDisplayতে একটি সমস্যা সমাধান করা হয়েছে, যেখানে একই স্ক্রিনগুলোর মধ্যে বারবার আসা-যাওয়া করলে এবং উভয়ের মধ্যকার অ্যানিমেশন বাধাগ্রস্ত হলে স্ক্রিনগুলোর z-order ভুল হয়ে যেতে পারতো। ( I4d491 , b/459419800 )
সংস্করণ 1.1.0-beta01
১১ মার্চ, ২০২৬
androidx.navigation3:navigation3-*:1.1.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-beta01-এ এই কমিটগুলো রয়েছে।
সংস্করণ 1.1.0-alpha05
২৫শে ফেব্রুয়ারি, ২০২৬
androidx.navigation3:navigation3-*:1.1.0-alpha05 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha05-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
-
NavDisplayএবংrememberSceneStateএখন আগের এককSceneStrategyপ্যারামিটারের পরিবর্তে একটিList<SceneStrategy>গ্রহণ করে, যাthenইনফিক্স দ্বারা শৃঙ্খলিত ছিল। এটিList<SceneDecoratorStrategy<T>>এর সাথে আরও ঘনিষ্ঠভাবে সামঞ্জস্যপূর্ণ, যা এই উভয় API ইতিমধ্যেই গ্রহণ করে। পূর্ববর্তী API-গুলো অপ্রচলিত (deprecated) ঘোষণা করা হয়েছে। ( I78b2c , b/482108465 ) - মেটাডেটা ম্যাপটিতে প্রদত্ত
NavMetadataKeyআছে কিনা তা পরীক্ষা করার জন্য একটি মেটাডেটা #contains অপারেটর যোগ করা হয়েছে। ( Ic30db , b/485311895 ) - Metadata DSL-এর সাথে ব্যবহারের জন্য
DialogSceneStrategyতেNavMetadataKeyDialogKeyযোগ করা হয়েছে। ( Ic7a26 , b/483388817 )
সংস্করণ 1.1.0-alpha04
১১ ফেব্রুয়ারী, ২০২৬
androidx.navigation3:navigation3-*:1.1.0-alpha04 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha04-এ এই কমিটগুলো রয়েছে।
নতুন বৈশিষ্ট্য
- Navigation3 এখন একটি নতুন টাইপ-সেফ মেটাডেটা ডিএসএল (DSL) প্রদান করে। এই ডিএসএল-টি একটি নতুন
MetadataKeyইন্টারফেস ব্যবহার করে, যা মেটাডেটা ম্যাপে সরবরাহ করতে ইচ্ছুক কী (key) এবং ভ্যালু (value) টাইপগুলো সংজ্ঞায়িত করার সুযোগ দেয়। এছাড়াও,NavDisplayট্রানজিশনের জন্য নতুনNavMetadataKeyযোগ করা হয়েছে, যাতে নতুনmetadataডিএসএল-এর সাথে এগুলো ব্যবহার করেNavDisplayতে ট্রানজিশন যোগ করা যায়। ( Ic10ef , Ic049c , b/476213928 )
এপিআই পরিবর্তন
-
OverlaySceneইন্টারফেসে একটি নতুনonRemovedসাসপেন্ডিং কলব্যাক রয়েছে। এই কলব্যাকটি সিন-এর সাথে যুক্ত কোনো কী ব্যাকস্ট্যাক থেকে সরিয়ে ফেলার পরে, কিন্তু কম্পোজিশন থেকে বেরিয়ে যাওয়ার আগে কল করা হয়। এর ফলে, ওভারলে সিনটি কম্পোজিশন থেকে সরিয়ে ফেলার আগেইonRemovedমধ্যে কল করা এক্সিট অ্যানিমেশনগুলো সম্পূর্ণ হতে পারে। ( I29a72 , b/440558061 ) -
SceneStrategyডেকোরেশন ফাংশনটিকে একটি নতুনSceneDecoratorStrategyতে আলাদা করেছে। সিন ডেকোরেট করার জন্য এই নতুন ইন্টারফেসটি ব্যবহার করা উচিত।SceneDecoratorStrategiesযোগ করার সুবিধার্থেNavDisplayএবংrememberSceneStateএর জন্য নতুন API রয়েছে। ( If9385 , b/477669607 , b/477670333 )
বাগ সংশোধন
- একটি ত্রুটি সংশোধন করা হয়েছে যেখানে
NavDisplayবাrememberSceneStateএ একটিSharedTransitionLayoutপাস করলে এবং যেকোনোOverlaySceneব্যবহার করলে ক্র্যাশ হতো, কারণSharedTransitionLayoutশুধুমাত্রNavEntriesসাথে কাজ করে যেগুলোAnimatedContentএর অংশ হিসেবে রেন্ডার করা হয় এবংOverlaySceneআলাদাভাবে তাদের নিজস্ব উইন্ডোতে রেন্ডার করা হয়। ( I1bb76 , b/478664101 )
নির্ভরতা আপডেট
-
Navigation31.0.1 থেকে:Navigation3এখনNavigationEvent1.0.2-এর উপর নির্ভরশীল। এটিAndroidStudioপ্রিভিউ চলাকালীনNavDisplayব্যবহারের কারণে সৃষ্ট একটিIllegalStateExceptionসমাধান করে। ( Id7212 , b/477149762 )
সংস্করণ 1.1.0-alpha03
২৮ জানুয়ারী, ২০২৬
androidx.navigation3:navigation3-*:1.1.0-alpha03 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha03-এ এই কমিটগুলো রয়েছে।
নতুন বৈশিষ্ট্য
- এখন আপনি
EntryProviderDSL-এর মাধ্যমে এন্ট্রি কী বিবেচনা করে ডায়নামিকভাবে মেটাডেটা যোগ করতে পারবেন। ( I942fb , b/474416976 )
সংস্করণ 1.1.0-alpha02
১৪ জানুয়ারী, ২০২৬
androidx.navigation3:navigation3-*:1.1.0-alpha02 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha02-এ এই কমিটগুলো রয়েছে।
নতুন বৈশিষ্ট্য
-
SceneStrategyএখন একটি নতুনcalculatedScene(Scene)ফাংশনের মাধ্যমে সিন নেস্টিং সমর্থন করে। এর মানে হলো, অন্যান্য সিনে অতিরিক্ত কার্যকারিতা প্রদানের জন্যSceneStrategyকে কাস্টমাইজ করা যেতে পারে। ( I5df7c , b/440333896 )
সংস্করণ 1.1.0-alpha01
০৩ ডিসেম্বর, ২০২৫
androidx.navigation3:navigation3-*:1.1.0-alpha01 প্রকাশিত হয়েছে। সংস্করণ 1.1.0-alpha01-এ এই কমিটগুলো রয়েছে।
এপিআই পরিবর্তন
-
Navigation3এখন সিনগুলোকে শেয়ার্ড এলিমেন্ট অবজেক্ট হিসেবে বিবেচনা করা সমর্থন করে। এর মানে হলো, যখন সিনগুলো পরিবর্তিত হয়, তখন সেগুলোর একটি মসৃণ রূপান্তর নিশ্চিত করা সম্ভব। আপনিNavDisplayঅথবাrememberSceneStateএ একটিSharedTransitionScopeপাস করার মাধ্যমে এটি সক্রিয় করতে পারেন। ( I15868 )
সংস্করণ ১.০
সংস্করণ ১.০.১
১১ ফেব্রুয়ারী, ২০২৬
androidx.navigation3:navigation3-*:1.0.1 প্রকাশিত হয়েছে। সংস্করণ 1.0.1-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
নির্ভরতা আপডেট
-
Navigation3এখনNavigationEvent1.0.2-এর উপর নির্ভরশীল। এটিAndroidStudioপ্রিভিউ চলাকালীনNavDisplayব্যবহারের কারণে সৃষ্ট একটিIllegalStateExceptionসমাধান করে। ( Id7212 , b/477149762 )
সংস্করণ ১.০.০
১৯ নভেম্বর, ২০২৫
androidx.navigation3:navigation3-*:1.0.0 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
ন্যাভিগেশন৩ উপস্থাপন করা হচ্ছে!
- Navigation3 লাইব্রেরিটি এখন স্থিতিশীল! Navigation3 হলো নেভিগেশনের জন্য AndroidX Compose-ভিত্তিক একটি পদ্ধতি।
- আরও তথ্যের জন্য, আমাদের ঘোষণা ব্লগ পোস্টটি দেখুন, রিসোর্সগুলো পরিদর্শন করুন এবং রেসিপিগুলো চেষ্টা করে দেখুন।
সংস্করণ 1.0.0-rc01
০৫ নভেম্বর, ২০২৫
androidx.navigation3:navigation3-*:1.0.0-rc01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-rc01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
বাগ সংশোধন
-
NavDisplayএখনSceneলেভেলে একটিLocalLifecycleOwnerসেট করে, যা সিন লেখকদেরLifecycle.Stateএর মানRESUMEDকিনা তা পরীক্ষা করে সমস্ত ট্রানজিশন শেষ হয়েছে কিনা তা নির্ধারণ করতে সাহায্য করে।NavEntryলেভেলেLocalLifecycleOwnerএর আচরণ অপরিবর্তিত রয়েছে: যদি কোনো ট্রানজিশন চলমান থাকে তবে এটিওSTARTEDএ সীমাবদ্ধ থাকে এবং যদি সেইNavEntryব্যাক স্ট্যাক থেকে পপ করা হয়ে থাকে ও অ্যানিমেট হয়ে বেরিয়ে যাওয়ার প্রক্রিয়ায় থাকে, তবে এটি অতিরিক্তভাবেCREATEDএ সীমাবদ্ধ থাকে। ( I03113 , b/454045829 )
সংস্করণ 1.0.0-beta01
২২ অক্টোবর, ২০২৫
androidx.navigation3:navigation3-*:1.0.0-beta01 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-beta01-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
SceneStrategyScopeএখন শুধুমাত্র একটি আর্গুমেন্টবিহীন পাবলিক কনস্ট্রাক্টর রয়েছে, যা আপনারSceneStrategyএবং ফেরত আসাSceneআলাদাভাবে পরীক্ষা করার জন্য উপযুক্ত। আরও জটিল ব্যবহারের ক্ষেত্রে, অনুগ্রহ করেrememberSceneState()ব্যবহার করুন। ( I8440c , b/451679047 )
বাগ সংশোধন
-
SceneStrategyসাথেthenচেইন করার সময় অসীম লুপের সমস্যা সমাধান করা হয়েছে। ( Iba3f0 , b/450323470 ) -
NavDisplayতে পাঠানোbackStackঅদলবদল করার সময় এবং অ্যানিমেশন ব্যবহার করার সময় স্ক্রিনের ঝিকিমিকি সমস্যা সমাধান করা হয়েছে। ( Ief7b5 , b/450967248 )
সংস্করণ 1.0.0-alpha11
০৮ অক্টোবর, ২০২৫
androidx.navigation3:navigation3-*:1.0.0-alpha11 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha11-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
-
SceneStrategyএরcalculateSceneমেথডটি আর@Composableনয়। এর পরিবর্তে, এই কাজটি আপনারSceneStrategyমেথডের গঠনে (যেমন, একটিrememberMySceneStrategy()মেথডে) সরিয়ে নেওয়ার কথা বিবেচনা করুন, যা আপনাকে যেকোনোrememberSaveableভ্যালুর লাইফটাইম অথবা সঠিক ভ্যালুর উপর ভিত্তি করে কীrememberস্টেটমেন্ট সম্পূর্ণরূপে সংজ্ঞায়িত করার সুযোগ দেবে। ( If1733 , b/448709506 ) -
SceneStrategy.calculateSceneএরonBackপ্যারামিটারটিSceneStrategyScopeএর নতুন রিসিভার স্কোপে স্থানান্তর করা হয়েছে, যাতে এটি যে একটি ঐচ্ছিক প্যারামিটার তা আরও স্পষ্ট হয় এবং ভবিষ্যতের Navigation3 ফিচারগুলোর জন্য একটি এক্সটেনশন পয়েন্ট তৈরি হয়। ( I3aea3 , b/448460407 ) -
NavDisplayএবং আপনারSceneStrategyতে পাস করাonBackল্যাম্বডাটি এখন আর একাধিক এন্ট্রি কখন পপ করা উচিত তা নির্দেশ করার জন্যcount: Intপ্যারামিটার সরবরাহ করে না। এর পরিবর্তে, সেই বিরল ক্ষেত্রে যখন আপনার Scene একাধিক এন্ট্রি পপ করার অনুরোধ করে, তখন() -> Unitল্যাম্বডাটি এখন পরপর একাধিকবার কল করা হবে। ( Idedb5 , b/446989346 ) -
NavEntryWrapperক্লাসটি সরিয়ে দিন এবং এর কার্যকারিতা একটি ফাইনালNavEntryক্লাস দিয়ে প্রতিস্থাপন করুন, যেটিতে একটি নতুন সেকেন্ডারি কনস্ট্রাক্টর থাকবে যা নতুন কন্টেন্টসহ একটিNavEntryগ্রহণ করবে। এর ফলে নতুন কন্টেন্ট দিয়ে একটি এন্ট্রি র্যাপ করার সুবিধা অব্যাহত থাকবে। ( I7da2a , b/444447130 ) -
navEntryDecoratorফাংশনটি, যা একটিNavEntryDecoratorতৈরি করে এবং রিটার্ন করে, তা সরিয়ে দেওয়া হয়েছে এবং এর পরিবর্তেNavEntryDecoratorক্লাসটি আনা হয়েছে, যা এখন পাবলিক এবং সাবক্লাসিংয়ের জন্য উন্মুক্ত। ( If81f8 , b/444447434 , b/447381176 ) -
SavedStateNavEntryDecoratorনাম পরিবর্তন করেSaveableStateHolderNavEntryDecoratorরাখা হয়েছে, কারণ এটিSaveableStateHolderযুক্ত এন্ট্রিগুলোকে ডেকোরেট করে। ডেকোরেটরটিকে একটি ফাংশন থেকে ক্লাসে রিফ্যাক্টরও করা হয়েছে, কারণ এটি কার্যগতভাবেNavEntryDecoratorএর একটি ফ্যাক্টরি। ( Ie6013 , b/447381176 ) -
NavDisplayবিকল্প হিসেবেSceneStateব্যবহারকারী কাস্টম ডিসপ্লেগুলির জন্য এখন আরLocalEntriesToRenderInCurrentSceneকম্পোজিশন লোকাল ব্যবহার করার প্রয়োজন নেই, যা এখন ইন্টারনাল। ( Ic40ef , b/414668196 ) - পাবলিক এপিআই থেকে
SceneSetupNavEntryDecoratorএবংrememberSceneSetupNavEntryDecorator()সরিয়ে ফেলা হয়েছে। এই কার্যকারিতাটি এখন ডিফল্টভাবে অন্তর্ভুক্ত করা হয়েছে, এর জন্য আপনাকে ম্যানুয়ালি এটি যুক্ত করার প্রয়োজন নেই। ( Ieae42 , b/444479133 ) -
NavEntry,DialogScene,SinglePaneSceneএবংSceneStateএখন সবগুলোই equals প্রয়োগ করে। ( I96121 ) - সিন ইন্টারফেসে নেভডিসপ্লে-এর জন্য সিন-নির্দিষ্ট মেটাডেটা সংযুক্ত করার একটি নতুন মেটাডেটা ফিল্ড রয়েছে। এটি একটি সিনকে
NavDisplay-এর মেটাডেটা ওভাররাইড করার সুযোগ দেয়, উদাহরণস্বরূপ ট্রানজিশনের মাধ্যমে। ( I1fd96 , b/443955625 ) - অপ্রয়োজনীয় জেনেরিক টাইপ প্যারামিটারটি সরিয়ে
rememberNavBackStackসিগনেচার সরল করা হয়েছে। ফাংশনটি এখনvararg elements: NavKey। ( I03e45 ) -
NavDisplayএর ডিফল্ট অ্যানিমেশনগুলো এখন সাধারণ API-এর অংশ, যার ফলে এগুলোকে সকল প্ল্যাটফর্ম থেকে কল করা যায়। ( I71af9 , b/447147159 ) - ক্লাসটি যে একটি কোটলিন ডিএসএল এবং এটি যে
NavEntries) তৈরির জন্য একটি স্কোপ প্রদান করে, তা সঠিকভাবে প্রতিফলিত করার জন্যEntryProviderBuilderনাম পরিবর্তন করেEntryProviderScopeরাখুন। ( Ia7465 )
বাগ সংশোধন
-
rememberNavBackStack()এখন NavKey-এর জন্য পলিমরফিক সিরিয়ালাইজেশন বাধ্যতামূলক করে এবং সঠিক স্টেট পুনরুদ্ধার নিশ্চিত করার জন্য একটি কাস্টমSavedStateConfigurationপ্রয়োজন। সমস্ত NavKey সাবটাইপকে প্রদত্ত SerializersModule-এ রেজিস্টার করার আবশ্যকতাটি প্রতিফলিত করার জন্য KDoc আপডেট করা হয়েছে। ( I6de37 , I782f2 , b/446664383 )
সংস্করণ 1.0.0-alpha10
২৪ সেপ্টেম্বর, ২০২৫
androidx.navigation3:navigation3-*:1.0.0-alpha10 প্রকাশিত হয়েছে। সংস্করণ 1.0.0-alpha10-এ এই কমিটগুলো অন্তর্ভুক্ত রয়েছে।
এপিআই পরিবর্তন
- নতুন
NavDisplayওভারলোড যোগ করা হয়েছে যাrememberDecoratedNavEntriesদ্বারা ডেকোরেট করাNavEntry<T>এর একটি তালিকা গ্রহণ করে। ( I4025b , b/441940314 ) -
DialogSceneএকটি নতুন প্যাকেজে স্থানান্তর করা হয়েছে। ( Ia5840 ) - পাবলিক API
DecorateNavEntryসরিয়ে ফেলুন। এর পরিবর্তে, একটি NavEntry-কে ডেকোরেটরের তালিকা দিয়ে র্যাপ করতেrememberDecoratedNavEntriesব্যবহার করুন। ( Id8c09 ) - Navigation3 UI এখন নতুন ডিফল্ট
transitionSpecপ্রোপার্টি প্রদান করে। ( Ibcabd ) - সিন ব্যবস্থাপনার জন্য একটি নতুন
SceneStateঅবজেক্ট যোগ করা হয়েছে। এটি একটি নতুনNavDisplayওভারলোডও প্রদান করে যাSceneStateএবংNavigationEventStateগ্রহণ করে। ( Idfb46 , b/444479133 ) -
NavDisplaynow allows you to customize the transitions based on whatSceneyou are going to and from by looking at theTransition'scurrentStateandtargetState. ( I906cc , b/443872322 ) -
NavigationEventInfois now anabstract classinstead of aninterface. Update all custom implementations to inherit from the class (e..g,data class MyInfo : NavigationEventInfo()). ( I1e59c , b/444734264 ) - The
navigationevent-composehandler APIs are updated.NavigationEventHandlerandNavigationBackHandler(and variants) now support a new overload that accepts a hoistedNavigationEventStates. The simple overloads (takingcurrentInfo) are preserved and now use this new state model internally. ( Ic3251 , b/444734264 ) - All of the Scene APIs have been moved out of navigation3-ui to navigation3-runtime. This means they are now available on all platforms supported by navigation3-runtime. ( I431d0 , b/444449993 )
- Added new
rememberDecoratedNavEntriesoverload that takes a list ofNavEntryto decorate. The input entries can be already decorated with other entry decorators. ( I5a034 , b/444230270 ) - Remove navigation3 wildcard type parameters ( I02540 )
- Improved the handling of generics for the
entryProviderDSL. If you were previously importingandroidx.navigation3.runtime.entry, this is no longer required. ( I299fc ) - Restrict the reflection-based
NavBackStackSerializeroverload to Android. This prevents implicit runtime serialization failures on non-Android platforms by enforcing the use of the explicitSavedStateConfigurationoverload in multiplatform code. ( I73313 , b/420443609 ) - Make
NavigationEvent'sswipeEdgean@IntDef( Icee54 , b/443950342 ) - Restrict
NavBackStackserialization to Android. This prevents runtime failures on non-Android platforms. For multiplatform state saving, use therememberNavBackStackoverload with an explicitSavedStateConfiguration. ( I1e418 , b/420443609 )
Bug Fixes
- Fix crash during predictive back when nested
NavDisplayhas a single child entry. ( I2cdc0 , b/441933162 )
Version 1.0.0-alpha09
September 10, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .
API Changes
- The
DecoratedNavEntryProviderhas been replaced withrememberDecoratedNavEntriesthat creates and return NavEntries decorated with the list of provided decorators ( I0fe1c , b/441328236 ) -
NavBackStackis now generic over theNavKeytype. This allows apps and libraries to define custom key types for their back stacks, rather than being restricted toNavKey. ( I4d190 , Iad2f4 , b/420443609 ) -
NavBackStackis now@kotlinx.serialization.Serializable, making it possible to save and restore navigation state across process death and configuration changes without extra boilerplate. ( I2c3cf , b/420443609 ) -
RememberNavBackStackhas been moved tocommonMainto ensure it is provided on all platform targets. ( Id69e7 , b/420443609 )
Bug Fixes
-
NavDisplaynow correctly moves each individualNavEntryto the correctLifecycle.State. ( I30aac , b/440145700 ) - Fixed an issue where
NavDisplaywould ignore any nestedNavigationEventDispatcherOwnerset via theNavigationEventlibrary'sLocalNavigationEventDispatcherOwner. ( I6224a )
Dependency Changes
- Navigation3 now depends on NavigationEvent Alpha08 .
Version 1.0.0-alpha08
২৭ আগস্ট, ২০২৫
androidx.navigation3:navigation3-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .
New Features
- Added new Kotlin MultiPlatform (KMP) targets to
Navigation3 Runtimeartifacts.Navigation3 Runtimenow supports the following platforms in total: JVM (Android and Desktop), Native (Linux, iOS, watchOS, macOS, MinGW), and Web (JavaScript, WasmJS). ( I55078 , b/424410398 , b/419294028 , b/419046226 ). Note: This does not provide KMP targets forNavigation3 UIartifact. On other platforms, you will need to implement your own customNavDisplay. If you would like to see it supported, please vote on the Jetbrains issue here and track the progress for additional support there. - The
NavDisplayInfoobject is now public and can be used to retrieve the list of visible entries from theNavDisplay. ( Ibc91f )
API Changes
- Added a new
NavBackStackSerializerto be used in conjunction withrememberNavBackStackto perform state restoration.rememberNavBackStack()now also takes aSavedStateConfigurationthat can be used to provide your own configuration. ( I2f4d2 , I4cd58 , b/420443609 )
Bug Fixes
- Fixed an issue where navigating would cause incorrect Lifecycle events to fire. ( I8bf6d , b/425901162 , b/434109022 )
Known Issues
- There was a bug introduced by I8bf6d that caused Lifecycles to be based on scenes instead of individual entries, which broke Lifecycle for any cases where the
keyprovided to theNavEntryis not aStringor yourNavEntryhas not overridden thecontentKeyand set it equal to thekey(note that doing this enforces that your key can be saved into aBundle). This has been fixed for the next release. ( b/440145700 )
Version 1.0.0-alpha07
August 13, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .
MinSdk Update
- The default minSdk for the AndroidX has been moved from API 21 to API 23 ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
API Changes
-
SavedStateNavEntryDecoratornow uses theSaveableStateRegistrybuilt intoSaveableStateProviderto save and restore states. ( If8d9a ) - The
predictivePopTransitionSpecis now provided the swipe edge as a parameter, allowing you to customize the transition based on what edge the user started the Predictive Back gesture from. ( I753a8 )
Bug Fixes
- Fixed an issue that would cause custom scenes to be infinitely recalculated because the most recent scene was not being remembered. ( I7ba84 , b/418153031 )
Dependency update
- Navigation3 now depends on Navigation Event
1.0.0-alpha06.
Version 1.0.0-alpha06
July 30, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .
Dependency Update
- Navigation3 now depends on Navigation Event
1.0.0-alpha05.
Version 1.0.0-alpha05
July 2, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits .
Behavior Changes
- The
NavEntry's state is now strictly based on the current list of decorators passed to theNavDisplay. This means that decorators should be swapped along your back stacks in the case of multiple back stacks in order to preserve the state of the NavEntries on the back stack. Otherwise, the states will be cleared as if the entries were popped (instead of a swap). ( I7a759 , b/428033667 )
Version 1.0.0-alpha04
June 18, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits .
API Changes
-
NavEntry.contentis now private. To invokeNavEntrycontent, call the newNavEntry.Content()api which no longer requires akeyparameter to invoke. ( Icd0fd , b/420991203 ) -
NavEntry.keyis now a private field. TheNavEntryand its relevant states should be identified by the newcontentKeyfield which is generated from the newcontentKeyFactorylambda and defaults to a saveable hash generated fromNavEntry.key( I81a6c , b/422001357 , b/420991203 I2d7d4 , b/420991203 , b/422841812 )
Dependency Changes
- Navigation3 now depends on the new
androidx.navigationevent.composeartifact.
Version 1.0.0-alpha03
June 4, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits .
Bug Fixes
-
Navigation3will no longer clear decorator states forbackStacksthat have been swapped out and replaced with anotherbackStackinstance. ( I28a42 , b/415076044 )
Version 1.0.0-alpha02
২৩ মে, ২০২৫
androidx.navigation3:navigation3-*:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits .
Bug Fixes
- Fixed an issue with the
SavedStateNavEntryDecoratorwhich caused collisions for different data classes with the same property values. ( b/418070648 , Iff4775 ) - Fixed a missing class issue that would cause crashes when running without declaring explicit dependencies. ( b/419049149 , I4b4ed )
Version 1.0.0-alpha01
২০ মে, ২০২৫
androidx.navigation3:navigation3-*:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits .
New Features
Navigation3 is a new navigation library built specifically to handle Jetpack Compose in-app navigation. The androidx.navigation3.runtime artifact provides the building blocks, while the androidx.navigation3.ui artifact provides the UI layer via the NavDisplay API. Developers can provide their own state directly to the NavDisplay composable function, which changes the content based on changes in the developer state.
@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey
val backStack = rememberNavBackStack(Home)
NavDisplay(backStack, entryProvider = entryProvider {
entry<Home> {
Column {
Text(“Home”)
Button(onClick = { backStack.add(Chat) } ) {
Text(“Go to Chat”)
}
}
}
entry<Chat> { /* My Composable Content */ }
})
For more information, see the Navigation3 guide .