ناوبری3
| آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
|---|---|---|---|---|
| ۱۲ آگوست ۲۰۲۶ | ۱.۱.۶ | - | - | ۱.۲.۰-آلفا۰۷ |
اعلام وابستگیها
برای افزودن وابستگی به navigation3، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's Maven را مطالعه کنید.
وابستگیهای مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha07" implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha07" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha07") implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha07") }
برای اطلاعات بیشتر در مورد وابستگیها، به «افزودن وابستگیهای ساخت» مراجعه کنید.
بازخورد
بازخورد شما به بهبود Jetpack کمک میکند. اگر مشکلات جدیدی کشف کردید یا ایدههایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. میتوانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
هیچ یادداشت انتشاری برای این مصنوع وجود ندارد.
ناوبری۳ نسخه ۱.۲
نسخه ۱.۲.۰-آلفا۰۷
۲۹ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha07 منتشر شد. نسخه 1.2.0-alpha07 شامل این کامیتها است.
تغییرات API
- یک کلاس
WrappedMatchResultانتزاعی برای پوشش دادن یکDeepLinkMatcher.MatchResultدیگر اضافه شد. این امکان را فراهم میکند که نتایج تطبیق سفارشی روی نتایج تطبیق دیگری لایهبندی شوند. ( I7d4dc ، b/470282247 ) کلاس جدید
BackStackMatcherاضافه شده است که دو پارامتر میگیرد: یک نمونه تطبیقدهنده و یک لامبدا سازنده که نتیجه تطبیق تطبیقدهنده ورودی را ارائه میدهد و یک پشته پشتی برمیگرداند. پس از یک تطبیق موفق،BackStackMatcherیکBackStackMatchResultبرمیگرداند کهWrappedMatchResultکه شامل نتیجه تطبیق اصلی به همراه پشته پشتی ساخته شده با لامبدا است، بسط میدهد.BackStackMatcherفقط میتواند با تابع افزونه جدیدDeepLinkMatcher.withBackStackایجاد شود. ( Ibf987 ، b/470282247 )یک کلاس انتزاعی
DeepLinkSerializerاضافه شده است کهKSerializerبرای رمزگذاری و رمزگشاییvalue : Tبه عنوان یکStringمیدهد.DeepLinkSerializerمیتواند برای سریالسازی آرگومانهای لینک عمیق غیراولیه استفاده شود. سازگار باrememberSaveableوrememberNavBackStack. ( Id3c9f ، b/470282247 )DeepLinkMatcherیک پارامتر نوع دومout R : DeepLinkMatcher.MatchResult<T>تا توسعهدهندگان بتوانند بدون تبدیل نوع، به ویژگیهایMatchResultزیرکلاسشدهی برگرداندهشده توسطDeepLinkMatcher.match()دسترسی داشته باشند. ( I693d3 , b/470282247 )کران بالای T
DeepLinkMatcher.MatchResult'sازAny?بهAnyتغییر کرده است ( I6bf1a ).فیلد
uriدر سازندهیDeepLinkRequestاکنون به صورت پیشفرض null است.uriStringدر سازندهی ثانویه بهuriتغییر نام داده شده است. ( Ia0f14 , b/522194187 )
رفع اشکالات
-
ResultEffectاکنون ازrememberUpdatedStateبرای ثبت آخرین لامبداonResultاستفاده میکند. ( I7d2a3 ، b/531709234 ) - تطبیق لینک عمیق برای بخشهای خالی مسیر اصلاح شد. اگر نوع آرگومان String باشد، مسیر خالی به عنوان یک مقدار رشتهای خالی در نظر گرفته میشود. در غیر این صورت، مسیر خالی به عنوان بدون مقدار ارائه شده در نظر گرفته میشود و به مقدار پیشفرض برمیگردد. اگر مقدار پیشفرضی وجود نداشته باشد، تطبیق با شکست مواجه میشود. ( I56575 ، b/535298128 )
- پشتیبانی از مقادیر خالی کوئری در
DeepLinkRequest.uriاضافه شد. اگر آرگومان از نوع String باشد، مقدار خالی به عنوان یک رشته خالی تحتاللفظی در نظر گرفته میشود. در غیر این صورت، مقدار خالی به عنوان بدون مقدار ارائه شده در نظر گرفته میشود و تطبیق سعی میکند به مقدار پیشفرض بازگردد. اگر مقدار پیشفرضی وجود نداشته باشد، تطبیق با شکست مواجه میشود. ( I30343 ، b/535127459 ) -
EntryProviderاکنون تطبیق بر اساس نمونههای کلید را بر انواع کلید اولویتبندی میکند. ( Ib5ec9 , b/533331924 ) -
SceneStateاکنون صحنههای قبلی را از بالاترین صحنه غیرپوششی به درستی محاسبه میکند. ( I91915 ، b/513630541 )
نسخه ۱.۲.۰-alpha06
۱۵ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha06 منتشر شد. نسخه 1.2.0-alpha06 شامل این کامیتها است.
رفع اشکالات
- مستندات
UriDeepLinkMatcherدر مورد قطعات uri اصلاح شد تا روشن شود که قطعات دارای کاراکترهای جایگزین (wildcards) با هر ورودی مطابقت دارند اما ورودی به عنوان آرگومان استخراج نمیشود. ( I5ad9b ، b/524677091 ) - رفع مشکل عدم تطابق
UriDeepLinkMatcherبا درخواستی که الگوی uri آن شامل scheme نبود یا با دابل اسلش شروع نمیشد. برای مثال،www.example.com/homeاکنون باhttp://www.example.com/homeمطابقت خواهد داشت. ( Ia6b65 , b/522791926 )
نسخه ۱.۲.۰-آلفا۰۵
۱ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha05 منتشر شد. نسخه 1.2.0-alpha05 شامل این کامیتها است.
رابط برنامهنویسی کاربردی جدید
- یک API
rememberResultEventBusاضافه شده است که یکResultEventBusبرمیگرداند که میتواند بهrememberResultEventBusNavEntryDecoratorارسال شود. این امکان را فراهم میکند که یکResultEventBusخارج ازResultEventBusNavEntryDecoratorقرار گیرد. ( Ia655b , b/516995400 )
درخواست لینک عمیق
- دو سازنده سازگار با KMP اضافه شد - یکی که DeepLinkUri میگیرد و دیگری که یک uri رشتهای خام میگیرد. ( I3c088 ، b/513200887 ، b/522194187 )
- (فقط اندروید) یک سازنده اضافه شده که یک
Intentمیگیرد. ( Ia0498 ، b/513200887 ، b/522194187 ) - همه سازندهها یک فیلد
extrasبرایMap<String, Any>دارند تا اطلاعات درخواست اضافی را پیوست کنند. ( If81d5 , b/513200887 ) - یک
requestExtrasdsl جدید به عنوان روشی ایمن برای ساخت نقشهای از extraها اضافه شده است. dsl یک تابعputبرای ذخیره جفتهایRequestExtrasKeyبهAnyارائه میدهد. تابع افزونهMap<String, Any>.get(key)میتواند برای خواندن از نقشه باRequestExtrasKey( I5091c , b/513200887 ) استفاده شود. - (فقط اندروید) یک تابع
ActionExtrasKeyوactionExtraبرای ایجاد یک نقشه اضافی باActionExtrasKeyاضافه شد. ( Id0c90 , [b/513200887] - یک تابع
MimeTypeExtrasKeyوmimeTypeExtraبرای ایجاد یک نقشه اضافی باMimeTypeExtrasKeyاضافه شد. ( I85131 ، b/513200887 )
دیپلینکماچِر
- توابع
DeepLinkMatcher.mimeTypeFilterوDeepLinkMatcher.actionFilterبرای ایجادDeepLinkMatcher.Filtersاضافه شدهاند کهDeepLinkRequestبر اساسmimeTypeیاactionفیلتر میکنند (فقط اندروید). هر دو فیلتر بر اساس برابری رشتهها مطابقت دارند و به حروف کوچک و بزرگ حساس نیستند. ( Ie7e67 ، b/513191950 )
تغییرات API
درخواست لینک عمیق
- تابع کارخانهای
fromActionحذف کنید. برای ایجاد درخواستی مرتبط با یک Action، از فیلد جدیدDeepLinkRequest.extrasاستفاده کنید.( Id0c90 , b/513200887 ) - از تابع کارخانهای
fromMimeTypeحذف شد. برای ایجاد درخواستی مرتبط با mimeType، از فیلد جدیدDeepLinkRequest.extrasاستفاده کنید. ( I85131 ، b/513200887 ) - (فقط اندروید) از تابع کارخانهای
fromIntentحذف شده است. با یک سازنده جدید جایگزین شده است که یک Intent و map مربوط به extras را میگیرد. ( Ia0498 , b/513200887 , b/522194187 ) - توابع کارخانهای
fromUriوfromUriStringحذف شدند. با سازندههای جدیدی جایگزین شدند که یاDeepLinkUriیا یک uri رشته خام را میگیرند. ( Id5b6f ، b/522194187 ) -
DeepLinkMatcher،DeepLinkMatcher.MatchResultو زیرکلاسهای آنها اکنون یک کوواریانت T (خروجی T) میگیرند تا کلیدهای سلسله مراتبی با استفاده از Matcherها نیازی به تبدیل نوع نداشته باشند. ( I1e453 ، b/525094876 ) - پارامتر سازندهی
UriMatchResultبرای آرگومانهای map اکنون به طور پیشفرض روی یک map خالی تنظیم میشود. ( I3acdd ) - کلاس انتزاعی
DeepLinkMatcher.Filterاکنون یک رابط تابعی است. فیلد سازندهfilterحذف شده و در عوض باید مستقیماً در زیرکلاس ارسال شود. ( I9eb7d , b/522194187 )
رفع اشکالات
- مشکل ناپدید شدن فوری ورودی ظاهر شده هنگام نمایش به ورودی که دارای فراداده تو در تو حاوی مقادیر لامبدا است، برطرف شد ( Idb872 ، b/520494430 ).
- مشکل
UriDeepLinkMatcherبرطرف شد، به طوری که در صورت عدم وجود آرگومانهای مورد نیاز در طول تطبیق، به جای ارسالMissingFieldException، مقدار تهیUriMatchResultبرمیگرداند ( I5322f ، b/524663005 ). - یک
UriDeeplinkMatcherحاوی uri با طرح https فقط میتواند با درخواستهایی که طرح https نیز دارند، مطابقت داده شود. ( Ibfe22 ، b/522304329 ) - رفع مشکل
UriDeepLinkMatcherبرای شناسایی صحیح طرحhttpبه عنوان یک تطابق مثبت باhttpsهنگام تطبیق یکDeepLinkRequestبا یکUriDeepLinkMatcher. ( I3a62b ، b/518804264 ) - مقایسهگر
DeepLinkMatcher.MatchResultاکنون به طور پیشفرض وقتی دو نتیجه برابر باشند، 0 را برمیگرداند. ( I48ddb ، b/518841353 ) -
UriDeepLinkMatcherاکنون به جای ارسال استثنا در صورت عدم موفقیت درخواست تطبیق به دلیل فقدان آرگومانهای مورد نیاز، مقدار تهیUriMatchResultبرمیگرداند. ( I669a7 ، b/470282247 ، b/512923412 )
نسخه ۱.۲.۰-آلفا۰۴
۳ ژوئن ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha04 منتشر شد. نسخه 1.2.0-alpha04 شامل این کامیتها است.
رفع اشکالات
- مشکل انیمیشن لایههای تو در تو مانند
ModalBottomSheetکه هنگام باز شدن لایههای بالای آن، به طور غیرمنتظرهای دوباره متحرک میشدند، برطرف شد. ( Ia2b9e ، b/502624496 )
نسخه ۱.۲.۰-آلفا۰۳
۱۹ مه ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha03 منتشر شد. نسخه 1.2.0-alpha03 شامل این کامیتها است.
ویژگیهای جدید
ناوبری ۳ اکنون از لینکهای عمیق با DeepLinkRequest و DeepLinkMatcher پشتیبانی میکند:
DeepLinkRequestیک لینک عمیق درخواستی حاویDeepLinkUriو یک mimeType یا action اختیاری (فقط اندروید) است. همراه با کلاس جدید، توابع همراهی برای ایجاد یک نمونه باuri،mimeTypeیاactionوجود دارد. پلتفرم اندروید همچنین دارای یک helper برای ساخت درخواست از یک 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تطبیق داده شود. هر نمونه از matcher با کلید ناوبری که از این لینک عمیق پشتیبانی میکند، مرتبط است. یک کلید ناوبری میتواند با چندین matcher مرتبط باشد. فراخوانیDeepLinkMatcher.matchیکMatchResultبرمیگرداند که در صورت موفقیت آمیز بودن تطبیق، حاوی کلید ناوبری مرتبط است. دو پیادهسازی پیشفرضDeepLinkMatcherوجود دارد:UriDeepLinkMatcherبرای تطبیق لینکهای عمیق بر اساس Uri، وStaticKeyDeepLinkMatcherبرای تطبیق لینکهای عمیق فقط باDeepLinkMatcher.Filterکه با یکBooleanتطبیق داده میشوند. ( I3798e ، b/470282247 )UriDeepLinkMatcherیک پیادهسازی خودرأی ازDeepLinkMatcherاست که با تطبیق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اضافه شد که یک نسخه kotlin-multplatform ازandroid.net.Uriاست ( Id4725 , b/470282247 )
تغییرات API
- برای مطابقت با compileSdk مربوط به Compose، به
compileSdk 37تغییر یافت.
رفع اشکالات
- خطای
IllegalArgumentExceptionمربوط بهAnimatedBottomSheetSampleهنگام نمایش چندین overlay برطرف شد. نمونهیSceneStrategyاکنون آخرین صحنهی غیرOverlaySceneبه درستی محاسبه کرده و آن را در زیر تمام صحنههای overlay نمایش میدهد. ( If2281 , b/506733412 ) - وابستگی
NavigationEventبه نسخه ۱.۱.۱ ارتقا داده شد که در حالت بازرسی، NavigationEventHandler بدون عملیات را حذف میکند تا Predictive Back در پیشنمایشهای اندروید استودیو فعال شود. ( I487fd )
نسخه ۱.۲.۰-آلفا۰۲
۲۲ آوریل ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha02 منتشر شد. نسخه 1.2.0-alpha02 شامل این کامیتها است.
تغییرات API
- نام
onBackبهonBackCompletedتغییر دهید وonBackCancelledبه NavigationBackHandler اضافه کنید تا از مدیریت حرکات برگشت لغو شده پشتیبانی کند. ( I92741 ) - برای سادهسازی مدیریت حرکات برگشت به عقب و حرکات پیشبینیکننده برگشت هنگام استفاده از
SceneStateNavigationBackHandlerرا اضافه کنید. این به توسعهدهندگان اجازه میدهد تا راحتتر اجزای رابط کاربری سفارشی ایجاد کنند که از ناوبری استاندارد برگشت به عقب و حرکات پیشبینیکننده بدون محاسبه دستی دلتاهای پشته برگشت پشتیبانی میکنند. ( I6a055 ) - برای سادهسازی اتصال
SceneStateبا مدیریت بازگشتی پیشبینیکننده،rememberNavigationEventStateرا اضافه کنید. ( Iae49c )
ویژگیهای جدید
- یک API
ResultEventBusاضافه شده است تا امکان انتقال نتایج بین NavEntries باLocalResultEventBusارائه شده توسطResultEventBusNavEntryDecoratorجدید فراهم شود. نتایج ارسالی میتوانند به عنوان یک وضعیت باResultEventBus#conflateAsStateیا به عنوان یک جریان از نتایج باResultEffectارزیابی شوند.
نسخه ۱.۲.۰-آلفا۰۱
۸ آوریل ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha01 منتشر شد. نسخه 1.2.0-alpha01 شامل این کامیتها است.
رفع اشکالات
- دسترسی به
LocalNavAnimatedContentScopeاز یکOverlaySceneباعث خطایIllegalStateExceptionنمیشود، زیراOverlayScenesاکنون با یکLocalAnimatedContentScopeبدون عملیات ارائه میشوند. ( I2f00c ، b/486067688 )
ناوبری۳ نسخه ۱.۱
نسخه ۱.۱.۶
۱۲ آگوست ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.6 منتشر شد. نسخه ۱.۱.۶ شامل این کامیتها است.
رفع اشکالات
-
NavEntry.contentKeyاکنون به طور پیشفرض ترکیبی ازkey.toString()وkey::class.toString()است. این تضمین میکند که اشیاء دادهای که نام یکسانی دارند اما رابطهای مختلفی را پیادهسازی میکنند، دیگرcontentKeyیکسانی نخواهند داشت. با این حال،key::classپلتفرم JS فقط نام کلاس ساده را به جای نام کامل برمیگرداند، بنابراین پلتفرم JS همچنان بایدcontentKeyسفارشی را برای اشیاء دادهای با نامهای تکراری پیادهسازی کند. ( I1fbbb ، b/512534342 ) - خطای
IllegalArgumentExceptionکه توسطSaveableStateHolderبرای استفاده مجدد از کلید، زمانی که چندین انتقال pop به دلیل pop شدن سریع از back stack به طور همزمان در حال انجام هستند، رخ میداد، برطرف شد. ( I4d728 ، b/516312097 )
نسخه ۱.۱.۵
۲۹ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.5 منتشر شد. نسخه ۱.۱.۵ شامل این کامیتها است.
رفع اشکالات
- DSL
entryProviderاکنونNavEntryساخته شده با یک نمونه کلید، برای مثالentry(key = userKey) { ... }را نسبت بهNavEntryساخته شده با یک کلاس کلید مانندentry<UserKey>{ ... }.( Ib5ec9 , b/533331924 ) در اولویت قرار میدهد.
نسخه ۱.۱.۴
۱ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.4 منتشر شد. نسخه ۱.۱.۴ شامل این کامیتها است.
رفع اشکالات
- مشکل ناپدید شدن فوری ورودی ظاهر شده هنگام نمایش به ورودی که دارای فراداده تو در تو حاوی مقادیر لامبدا است، برطرف شد ( Idb872 ، b/520494430 ).
نسخه ۱.۱.۳
۱۷ ژوئن ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.3 منتشر شد. نسخه ۱.۱.۳ شامل این کامیتها است.
رفع اشکالات
مشکل انیمیشن لایههای تو در تو مانند
ModalBottomSheetکه هنگام باز شدن لایههای بالای آن، به طور غیرمنتظرهای دوباره متحرک میشدند، برطرف شد. ( Ia2b9e ، b/502624496 )وابستگی
NavigationEventبه نسخه ۱.۱.۲ ارتقا یافت که در آنNavigationEventHandlerبدون عملیات در حالت بازرسی حذف شد تا Predictive Back در پیشنمایشهای اندروید استودیو فعال شود.
نسخه ۱.۱.۲
۱۹ مه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.2 منتشر شد. نسخه ۱.۱.۲ شامل این کامیتها است.
رفع اشکالات
- وابستگی
NavigationEventبه نسخه ۱.۱.۱ ارتقا داده شد که در حالت بازرسی،NavigationEventHandlerبدون عملیات را حذف کرد تا Predictive Back در پیشنمایشهای اندروید استودیو فعال شود.
نسخه ۱.۱.۱
۲۲ آوریل ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.1 منتشر شد. نسخه ۱.۱.۱ شامل این کامیتها است.
رفع اشکالات
- دسترسی به
LocalNavAnimatedContentScopeاز یکOverlaySceneباعث خطایIllegalStateExceptionنمیشود، زیراOverlayScenesاکنون با یکLocalAnimatedContentScopeبدون عملیات ارائه میشوند. ( I2f00c ، b/486067688 )
نسخه ۱.۱.۰
۸ آوریل ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0 منتشر شد. نسخه ۱.۱.۰ شامل این کامیتها است.
نسخه ۱.۱.۰ اکنون پایدار است!
تغییرات مهم از زمان ۱.۰.۰
عناصر مشترک بین صحنهها - Navigation3 اکنون از پردازش صحنهها به عنوان شیء عنصر مشترک پشتیبانی میکند. این بدان معناست که وقتی صحنهها تغییر میکنند، میتوان از انتقال روان آنها اطمینان حاصل کرد. میتوانید این کار را با ارسال SharedTransitionScope به NavDisplay یا به rememberSceneState فعال کنید.
SceneDecoratorStrategy - معرفی SceneDecoratorStrategy برای پشتیبانی از مواردی مانند تزئین صحنهها با اجزای رابط کاربری مشترک یا اشتراکگذاری حالت در صحنهها.
NavMetadata DSL - Navigation3 اکنون یک DSL متادیتای جدید با قابلیت اطمینان از نوع داده (type-safe) ارائه میدهد. DSL از یک رابط MetadataKey جدید استفاده میکند که امکان تعریف انواع کلید و مقداری را که میخواهند به نقشه متادیتا ارائه دهند، فراهم میکند. این رابط همچنین NavMetadataKeys جدیدی را برای انتقالهای NavDisplay اضافه کرده است تا بتوان از آنها با DSL متادیتای جدید برای افزودن انتقالها به NavDisplay استفاده کرد.
انیمیشنهای OverlayScene - رابط OverlayScene یک فراخوانی برگشتی جدید به onRemoved دارد که به حالت تعلیق درمیآید. این فراخوانی برگشتی پس از حذف کلید مرتبط با صحنه از backstack، اما قبل از ترک ترکیب، فراخوانی میشود. این امر به انیمیشنهای خروجی که درون onRemoved فراخوانی میشوند، اجازه میدهد تا قبل از حذف صحنه overlay از ترکیب، تکمیل شوند.
تغییرات دیگر - NavDisplay و rememberSceneState اکنون به جای پارامتر تکی SceneStrategy قبلی که توسط میانوند then زنجیر شده بود، یک List<SceneStrategy> میگیرند. - اکنون میتوانید به صورت پویا فراداده را با در نظر گرفتن کلید ورودی از طریق EntryProvider DSL اضافه کنید.
نسخه ۱.۱.۰-rc01
۲۵ مارس ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 شامل این کامیتها است.
رفع اشکالات
-
NavDisplayاکنون تضمین میکند که ورودیهایی که در زیر پوششها نمایش داده میشوند،LifecycleبهSTARTEDمحدود شود. این امر تضمین میکند که APIهایی مانندdropUnlessResumedهنگام استفاده از دیالوگها به کار خود ادامه دهند. ( If209f ، b/483966071 ) - مشکلی در
NavDisplayکه باعث میشد حرکت رفت و برگشتی بین صفحات مشابه و قطع انیمیشنهای بین این دو صفحه، باعث نادرست شدن ترتیب z صفحات شود، برطرف شد. ( I4d491 ، b/459419800 )
نسخه ۱.۱.۰-بتا۰۱
۱۱ مارس ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-beta01 منتشر شد. نسخه 1.1.0-beta01 شامل این کامیتها است.
نسخه ۱.۱.۰-آلفا۰۵
۲۵ فوریه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-alpha05 منتشر شد. نسخه 1.1.0-alpha05 شامل این کامیتها است.
تغییرات API
-
NavDisplayوrememberSceneStateاکنون به جای پارامتر تکیSceneStrategyقبلی که توسط میانوندthenزنجیر شده بود، یکList<SceneStrategy>میگیرند. این بیشتر باList<SceneDecoratorStrategy<T>>که هر دوی این APIها قبلاً میگیرند، همسو است. APIهای قبلی منسوخ شدهاند. ( I78b2c , b/482108465 ) - یک عملگر #contains برای بررسی اینکه آیا نقشه فراداده شامل
NavMetadataKeyداده شده است یا خیر، اضافه شده است ( Ic30db ، b/485311895 ). -
DialogKeyNavMetadataKeyبرایDialogSceneStrategyاضافه شد تا با Metadata DSL استفاده شود. ( Ic7a26 ، b/483388817 )
نسخه ۱.۱.۰-آلفا۰۴
۱۱ فوریه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-alpha04 منتشر شد. نسخه 1.1.0-alpha04 شامل این کامیتها است.
ویژگیهای جدید
- Navigation3 اکنون یک DSL فرادادهی جدید با قابلیت اطمینان از نوع داده (type-safe) ارائه میدهد. DSL از یک رابط
MetadataKeyجدید استفاده میکند که امکان تعریف انواع کلید و مقداری را که میخواهند به نقشهی فراداده ارائه دهند، فراهم میکند. این رابط همچنینNavMetadataKeyهای جدیدی را برای انتقالهایNavDisplayاضافه کرده است تا بتوان از آنها با DSLmetadataجدید برای افزودن انتقالها بهNavDisplayاستفاده کرد. ( Ic10ef ، Ic049c ، b/476213928 )
تغییرات API
- رابط
OverlaySceneیک فراخوانی برگشتی جدید بهonRemovedدارد که صحنه را به حالت تعلیق در میآورد. این فراخوانی برگشتی پس از حذف کلید مرتبط با صحنه از پشته پشتی، اما قبل از ترک ترکیب، فراخوانی میشود. این امر به انیمیشنهای خروجی که درونonRemovedفراخوانی میشوند، اجازه میدهد تا قبل از حذف صحنه overlay از ترکیب، تکمیل شوند. ( I29a72 , b/440558061 ) -
SceneStrategyتابع تزئین را به یکSceneDecoratorStrategyجدید تفکیک کرده است. این رابط جدید همان چیزی است که باید برای تزئین صحنهها استفاده شود. APIهای جدیدی برایNavDisplayوrememberSceneStateوجود دارد که امکان افزودنSceneDecoratorStrategiesرا فراهم میکند. ( If9385 , b/477669607 , b/477670333 )
رفع اشکالات
- خطایی که باعث میشد ارسال
SharedTransitionLayoutبهNavDisplayیاrememberSceneStateو استفاده از هرگونهOverlaySceneباعث خرابی شود، برطرف شد، زیرا استفاده ازSharedTransitionLayoutفقط باNavEntriesکه به عنوان بخشی ازAnimatedContentرندر میشوند، کار میکند وOverlaySceneبه طور جداگانه در پنجرههای خود رندر میشوند. ( I1bb76 ، b/478664101 )
بهروزرسانی وابستگی
- از
Navigation31.0.1:Navigation3اکنون بهNavigationEvent1.0.2 وابسته است. این مورد، خطایIllegalStateExceptionناشی از استفاده ازNavDisplayدر طول پیشنمایشهایAndroidStudioرا برطرف میکند. ( Id7212 ، b/477149762 )
نسخه ۱.۱.۰-آلفا۰۳
۲۸ ژانویه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-alpha03 منتشر شد. نسخه 1.1.0-alpha03 شامل این کامیتها است.
ویژگیهای جدید
- اکنون میتوانید به صورت پویا فراداده را با در نظر گرفتن کلید ورودی از طریق
EntryProviderDSL اضافه کنید. ( I942fb ، b/474416976 )
نسخه ۱.۱.۰-آلفا۰۲
۱۴ ژانویه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-alpha02 منتشر شد. نسخه 1.1.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
-
SceneStrategyاکنون از طریق تابع جدیدcalculatedScene(Scene)از صحنههای تودرتو پشتیبانی میکند. این بدان معناست کهSceneStrategyها میتوانند سفارشیسازی شوند تا قابلیتهای بیشتری را برای صحنههای دیگر فراهم کنند. ( I5df7c ، b/440333896 )
نسخه ۱.۱.۰-آلفا۰۱
۳ دسامبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.1.0-alpha01 منتشر شد. نسخه 1.1.0-alpha01 شامل این کامیتها است.
تغییرات API
-
Navigation3اکنون از پردازش صحنهها به عنوان شیء عنصر مشترک پشتیبانی میکند. این بدان معناست که وقتی صحنهها تغییر میکنند، میتوان از انتقال روان آنها اطمینان حاصل کرد. میتوانید این قابلیت را با ارسالSharedTransitionScopeبهNavDisplayیا بهrememberSceneStateفعال کنید. ( I15868 )
نسخه ۱.۰
نسخه ۱.۰.۱
۱۱ فوریه ۲۰۲۶
androidx.navigation3:navigation3-*:1.0.1 منتشر شد. نسخه 1.0.1 شامل این کامیتها است.
بهروزرسانی وابستگی
-
Navigation3اکنون بهNavigationEvent1.0.2 وابسته است. این مورد، خطایIllegalStateExceptionناشی از استفاده ازNavDisplayدر طول پیشنمایشهایAndroidStudioرا برطرف میکند. ( Id7212 ، b/477149762 )
نسخه ۱.۰.۰
۱۹ نوامبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0 منتشر شد. نسخه 1.0.0 شامل این کامیتها است.
معرفی Navigation3!
- کتابخانه Navigation3 اکنون پایدار است! Navigation3 اولین رویکرد AndroidX Compose برای ناوبری است.
- برای اطلاعات بیشتر، به پست وبلاگ اطلاعیه ما مراجعه کنید، از منابع بازدید کنید و دستور العمل ها را امتحان کنید.
نسخه ۱.۰.۰-rc01
۵ نوامبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 شامل این کامیتها است.
رفع اشکالات
-
NavDisplayاکنون یکLocalLifecycleOwnerدر سطحSceneتنظیم میکند که به نویسندگان صحنه اجازه میدهد با بررسی اینکهLifecycle.StateRESUMEDاست، مشخص کنند که آیا همه انتقالها به پایان رسیدهاند یا خیر. رفتارLocalLifecycleOwnerدر سطحNavEntryبدون تغییر باقی میماند: اگر یک انتقال در حال انجام باشد، همچنان درSTARTEDباقی میماند و اگرNavEntryاز پشته پشتی برداشته شده و در حال انیمیشنسازی باشد، علاوه بر این درCREATEDنیز محدود میشود. ( I03113 ، b/454045829 )
نسخه ۱.۰.۰-بتا۰۱
۲۲ اکتبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-beta01 منتشر شد. نسخه 1.0.0-beta01 شامل این کامیتها است.
تغییرات API
-
SceneStrategyScopeاکنون فقط یک سازنده عمومی بدون آرگومان دارد که برای آزمایشSceneStrategyوSceneبرگشتی به صورت جداگانه مناسب است. برای موارد استفاده پیچیدهتر، لطفاً ازrememberSceneState()استفاده کنید. ( I8440c ، b/451679047 )
رفع اشکالات
- مشکل حلقه بینهایت هنگام زنجیرهسازی
SceneStrategyباthenبرطرف شد. ( Iba3f0 ، b/450323470 ) - لرزش صفحه هنگام تعویض
backStackارسالی بهNavDisplayو استفاده از انیمیشنها برطرف شد. ( Ief7b5 ، b/450967248 )
نسخه ۱.۰.۰-آلفا۱۱
۸ اکتبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-alpha11 منتشر شد. نسخه 1.0.0-alpha11 شامل این کامیتها است.
تغییرات API
- متد
calculateSceneدرSceneStrategyدیگر@Composableنیست. در عوض، میتوانید این کار را به ساخت متدSceneStrategyخود (یعنی در یک متدrememberMySceneStrategy()) منتقل کنید که به شما امکان میدهد طول عمر هر مقدارrememberSaveableیا دستورات keyrememberرا از مقادیر صحیح تعریف کنید. ( If1733 , b/448709506 ) - پارامتر
onBackبرایSceneStrategy.calculateSceneبه محدوده گیرنده جدیدSceneStrategyScopeمنتقل شده است تا واضحتر شود که این یک پارامتر اختیاری است و یک نقطه گسترش برای ویژگیهای آینده Navigation3 فراهم میکند. ( I3aea3 ، b/448460407 ) - لامبدا
onBackکه بهNavDisplayوSceneStrategyشما ارسال میشود، دیگر پارامترcount: Intرا برای نشان دادن زمان نمایش چندین ورودی ارائه نمیدهد. در عوض، لامبدا() -> Unitاکنون چندین بار پشت سر هم در موارد نادری که Scene شما درخواست نمایش چندین ورودی را میدهد، فراخوانی میشود. ( Idedb5 ، b/446989346 ) - کلاس
NavEntryWrapperحذف کنید و عملکرد آن را با یک کلاسNavEntryنهایی با یک سازنده ثانویه جدید که یکNavEntryبا محتوای جدید میگیرد، جایگزین کنید. این کار امکان پشتیبانی مداوم از بستهبندی یک ورودی با محتوای جدید را فراهم میکند. ( I7da2a , b/444447130 ) - تابع
navEntryDecoratorکه یکNavEntryDecoratorایجاد و برمیگرداند، حذف شده و با کلاسNavEntryDecoratorجایگزین شده است که اکنون عمومی شده و برای زیرکلاسسازی باز است. ( If81f8 , b/444447434 , b/447381176 ) -
SavedStateNavEntryDecoratorبهSaveableStateHolderNavEntryDecoratorتغییر نام داده است، زیرا ورودیها را باSaveableStateHolderتزئین میکند. این دکوراتور همچنین از یک تابع به یک کلاس تغییر یافته است، زیرا از نظر عملکردی یک factory برایNavEntryDecoratorاست. ( Ie6013 ، b/447381176 ) - نمایشگرهای سفارشی که از
SceneStateبه عنوان جایگزینی برای استفاده ازNavDisplayاستفاده میکنند، دیگر نیازی به استفاده از ترکیبLocalEntriesToRenderInCurrentSceneمحلی ندارند، که اکنون داخلی است. ( Ic40ef ، b/414668196 ) -
SceneSetupNavEntryDecoratorوrememberSceneSetupNavEntryDecorator()از سطح API عمومی حذف شدند. این قابلیت اکنون به طور پیشفرض و بدون نیاز به وارد کردن دستی آن توسط شما، در دسترس است. ( Ieae42 , b/444479133 ) -
NavEntry،DialogScene،SinglePaneSceneوSceneStateاکنون همگی equals را پیادهسازی میکنند. ( I96121 ) - رابط صحنه یک فیلد فراداده جدید برای الصاق فرادادههای مختص صحنه به NavDisplay دارد. این به صحنه اجازه میدهد تا فرادادههای موجود در
NavDisplayرا نادیده بگیرد، برای مثال با انتقالها ( I1fd96 ، b/443955625 ). - با حذف پارامتر نوع عمومی زائد، امضای
rememberNavBackStackرا ساده کنید. این تابع اکنونvararg elements: NavKey. ( I03e45 ) - انیمیشنهای پیشفرض برای
NavDisplayاکنون بخشی از API مشترک هستند که به آنها اجازه میدهد از همه پلتفرمها فراخوانی شوند. ( I71af9 , b/447147159 ) - نام
EntryProviderBuilderبهEntryProviderScopeتغییر دهید تا دقیقاً نشان دهد که کلاس یک DSL کاتلین است که محدودهای برای ساختNavEntriesارائه میدهد. ( Ia7465 )
رفع اشکالات
-
rememberNavBackStack()اکنون سریالسازی چندریختی را برای NavKey اعمال میکند و به یکSavedStateConfigurationسفارشی نیاز دارد که برای اطمینان از بازیابی صحیح وضعیت پیکربندی شده باشد. KDoc بهروزرسانی شده است تا الزام ثبت تمام زیرگروههای NavKey در SerializersModule ارائه شده را منعکس کند. ( I6de37 ، I782f2 ، b/446664383 )
نسخه ۱.۰.۰-آلفا۱۰
۲۴ سپتامبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-alpha10 منتشر شد. نسخه 1.0.0-alpha10 شامل این کامیتها است.
تغییرات API
- یک سربارگذاری جدید
NavDisplayاضافه کنید که لیستی ازNavEntry<T>که توسطrememberDecoratedNavEntriesتزئین شده است را دریافت کند. ( I4025b , b/441940314 ) -
DialogSceneبه یک بسته جدید منتقل شد. ( Ia5840 ) - API عمومی
DecorateNavEntryحذف کنید. در عوض ازrememberDecoratedNavEntriesبرای قرار دادن یک NavEntry با لیستی از دکوراتورها استفاده کنید. ( Id8c09 ) - رابط کاربری Navigation3 اکنون ویژگیهای پیشفرض جدید
transitionSpecارائه میدهد. ( Ibcabd ) - یک شیء
SceneStateجدید برای کمک به مدیریت صحنهها اضافه شد. این شیء همچنین یک سربارگذاری جدیدNavDisplayارائه میدهد کهSceneStateوNavigationEventStateرا دریافت میکند. ( Idfb46 ، b/444479133 ) -
NavDisplayاکنون به شما امکان میدهد تا با نگاه کردن بهcurrentStateوtargetStateمربوط بهTransition، انتقالها را بر اساسSceneکه به آن میروید و از آن خارج میشوید، سفارشی کنید. ( I906cc ، b/443872322 ) -
NavigationEventInfoاکنون به جای یکinterfaceیکabstract classاست. تمام پیادهسازیهای سفارشی را برای ارثبری از کلاس بهروزرسانی کنید (مثلاًdata class MyInfo : NavigationEventInfo()). ( I1e59c , b/444734264 ) - رابطهای برنامهنویسی (API) مربوط به مدیریتکنندهی
navigationevent-composeبهروزرسانی شدهاند.NavigationEventHandlerوNavigationBackHandler(و انواع دیگر) اکنون از یک overload جدید پشتیبانی میکنند که یکNavigationEventStateرا که به صورت hoist شده است، میپذیرد. overloadهای ساده (با گرفتنcurrentInfo) حفظ شده و اکنون از این مدل state جدید به صورت داخلی استفاده میکنند. ( Ic3251 ، b/444734264 ) - تمام APIهای صحنه از navigation3-ui به navigation3-runtime منتقل شدهاند. این بدان معناست که اکنون آنها در تمام پلتفرمهای پشتیبانی شده توسط navigation3-runtime در دسترس هستند. ( I431d0 ، b/444449993 )
- اضافه بار جدید
rememberDecoratedNavEntriesاضافه شد که لیستی ازNavEntryرا برای تزئین میگیرد. ورودیهای ورودی میتوانند از قبل با سایر دکوراتورهای ورودی تزئین شوند. ( I5a034 ، b/444230270 ) - پارامترهای نوع wildcard مربوط به navigation3 را حذف کنید ( I02540 )
- مدیریت ژنریکها برای
entryProviderDSL بهبود یافته است. اگر قبلاًandroidx.navigation3.runtime.entryرا وارد میکردید، دیگر نیازی به این کار نیست. ( I299fc ) - محدود کردن سربارگذاری
NavBackStackSerializerمبتنی بر بازتاب به اندروید. این کار با اعمال استفاده از سربارگذاری صریحSavedStateConfigurationدر کد چند پلتفرمی، از شکستهای سریالسازی ضمنی زمان اجرا در پلتفرمهای غیر اندروید جلوگیری میکند. ( I73313 ، b/420443609 ) -
swipeEdgeمربوط بهNavigationEventرا به یک@IntDefتبدیل کنید ( Icee54 , b/443950342 ) - سریالسازی
NavBackStackبه اندروید محدود کنید. این کار از خطاهای زمان اجرا در پلتفرمهای غیر اندروید جلوگیری میکند. برای ذخیره وضعیت چند پلتفرمی، از overloadrememberNavBackStackبا یکSavedStateConfigurationصریح استفاده کنید. ( I1e418 , b/420443609 )
رفع اشکالات
- رفع مشکل از کار افتادن برنامه هنگام فراخوانی پیشبینانه، زمانی که
NavDisplayتو در تو دارای یک ورودی فرزند بود. ( I2cdc0 ، b/441933162 )
نسخه ۱.۰.۰-آلفا۰۹
۱۰ سپتامبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-alpha09 منتشر شد. نسخه 1.0.0-alpha09 شامل این کامیتها است.
تغییرات API
-
DecoratedNavEntryProviderباrememberDecoratedNavEntriesجایگزین شده است که NavEntries را ایجاد کرده و با لیستی از دکوراتورهای ارائه شده ( I0fe1c ، b/441328236 ) تزئین میکند. -
NavBackStackاکنون روی نوعNavKeyعمومیت دارد. این به برنامهها و کتابخانهها اجازه میدهد تا انواع کلید سفارشی را برای پشتههای پشتی خود تعریف کنند، نه اینکه محدود بهNavKeyباشند. ( I4d190 ، Iad2f4 ، b/420443609 ) -
NavBackStackاکنون@kotlinx.serialization.Serializable تبدیل شده است که امکان ذخیره و بازیابی وضعیت ناوبری را در طول مرگ فرآیند و تغییرات پیکربندی بدون کدهای تکراری اضافی فراهم میکند. ( I2c3cf ، b/420443609 ) -
RememberNavBackStackبهcommonMainمنتقل شده است تا از ارائه آن در تمام پلتفرمهای هدف اطمینان حاصل شود. ( Id69e7 ، b/420443609 )
رفع اشکالات
-
NavDisplayاکنون به درستی هرNavEntryبهLifecycle.Stateصحیح منتقل میکند. ( I30aac ، b/440145700 ) - مشکلی که باعث میشد
NavDisplayهر تنظیم تودرتویNavigationEventDispatcherOwnerرا که از طریقLocalNavigationEventDispatcherOwnerکتابخانهNavigationEventتنظیم شده بود، نادیده بگیرد، برطرف شد. ( I6224a )
تغییرات وابستگی
- Navigation3 اکنون به NavigationEvent Alpha08 بستگی دارد.
نسخه ۱.۰.۰-آلفا۰۸
۲۷ آگوست ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-alpha08 منتشر شد. نسخه 1.0.0-alpha08 شامل این کامیتها است.
ویژگیهای جدید
- اهداف جدید Kotlin MultiPlatform (KMP) به مصنوعات
Navigation3 Runtimeاضافه شد.Navigation3 Runtimeاکنون در مجموع از پلتفرمهای زیر پشتیبانی میکند: JVM (اندروید و دسکتاپ)، Native (لینوکس، iOS، watchOS، macOS، MinGW) و وب (جاوااسکریپت، WasmJS). ( I55078 ، b/424410398 ، b/419294028 ، b/419046226 ). توجه: این اهداف KMP را برای مصنوعNavigation3 UIارائه نمیدهد. در سایر پلتفرمها، بایدNavDisplayسفارشی خود را پیادهسازی کنید. اگر مایل به پشتیبانی از آن هستید، لطفاً در اینجا به موضوع Jetbrains رأی دهید و پیشرفت پشتیبانی بیشتر را در آنجا پیگیری کنید. - شیء
NavDisplayInfoاکنون عمومی است و میتواند برای بازیابی لیست ورودیهای قابل مشاهده ازNavDisplayاستفاده شود. ( Ibc91f )
تغییرات API
- یک
NavBackStackSerializerجدید اضافه شده است تا در رابطه باrememberNavBackStackبرای انجام بازیابی وضعیت استفاده شود.rememberNavBackStack()اکنون یکSavedStateConfigurationنیز میگیرد که میتواند برای ارائه پیکربندی شخصی شما استفاده شود. ( I2f4d2 ، I4cd58 ، b/420443609 )
رفع اشکالات
- مشکلی که باعث میشد پیمایش باعث ایجاد رویدادهای نادرست چرخه عمر شود، برطرف شد. ( I8bf6d ، b/425901162 ، b/434109022 )
مشکلات شناخته شده
- یک اشکال توسط I8bf6d معرفی شده بود که باعث میشد Lifecycleها به جای ورودیهای منفرد، بر اساس صحنهها باشند، که این امر Lifecycle را برای هر موردی که
keyارائه شده بهNavEntryیکStringنیست یاNavEntryشماcontentKeyبازنویسی نکرده و آن را برابر باkeyقرار نداده است، از کار میانداخت (توجه داشته باشید که انجام این کار مستلزم آن است که کلید شما بتواند در یکBundleذخیره شود). این مشکل در نسخه بعدی برطرف شده است. ( b/440145700 )
نسخه ۱.۰.۰-آلفا۰۷
۱۳ آگوست ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-alpha07 منتشر شد. نسخه 1.0.0-alpha07 شامل این کامیتها است.
بهروزرسانی MinSDK
- minSdk پیشفرض برای AndroidX از API 21 به API 23 منتقل شده است ( Ibdfca ، b/380448311 ، b/435705964 ، b/435705223 )
تغییرات API
-
SavedStateNavEntryDecoratorاکنون ازSaveableStateRegistryکه درSaveableStateProviderتعبیه شده است برای ذخیره و بازیابی حالتها استفاده میکند. ( If8d9a ) - ویژگی
predictivePopTransitionSpecاکنون لبهی سوایپ را به عنوان پارامتر ارائه میدهد و به شما امکان میدهد تا انتقال را بر اساس لبهای که کاربر حرکت Predictive Back را از آن شروع کرده است، سفارشی کنید. ( I753a8 )
رفع اشکالات
- 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
۳۰ ژوئیه ۲۰۲۵
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
۲ ژوئیه ۲۰۲۵
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
۱۸ ژوئن ۲۰۲۵
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
۴ ژوئن ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits .
رفع اشکالات
-
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 .
رفع اشکالات
- 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 .
ویژگیهای جدید
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 .
،navigation3
| آخرین بهروزرسانی | Stable Release | Release Candidate | انتشار بتا | Alpha Release |
|---|---|---|---|---|
| ۱۲ آگوست ۲۰۲۶ | ۱.۱.۶ | - | - | 1.2.0-alpha07 |
Declaring dependencies
To add a dependency on navigation3, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle file for your app or module:
Groovy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.2.0-alpha07" implementation "androidx.navigation3:navigation3-ui:1.2.0-alpha07" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.2.0-alpha07") implementation("androidx.navigation3:navigation3-ui:1.2.0-alpha07") }
For more information about dependencies, see Add build dependencies .
بازخورد
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
There are no release notes for this artifact.
Navigation3 Version 1.2
Version 1.2.0-alpha07
۲۹ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha07 is released. Version 1.2.0-alpha07 contains these commits .
API Changes
- Added an abstract
WrappedMatchResultclass to wrap anotherDeepLinkMatcher.MatchResult. This allows customized match results layered on top of another one. ( I7d4dc , b/470282247 ) Added new
BackStackMatcherclass which takes two parameters: a matcher instance, and a builder lambda that provides the input matcher's match result and returns a back stack. Upon a successful match,BackStackMatcherreturns aBackStackMatchResultwhich extendsWrappedMatchResultcontaining the original match result along with the back stack built with the lambda. TheBackStackMatchercan only be created with the newDeepLinkMatcher.withBackStackextension function. ( Ibf987 , b/470282247 )Added an abstract
DeepLinkSerializerclass that extendsKSerializerto encode and decodevalue : Tas aString.DeepLinkSerializercan be used to serialize non-primitive deep link arguments. Compatible withrememberSaveableandrememberNavBackStack. ( Id3c9f , b/470282247 )DeepLinkMatcherhas added a second type parameterout R : DeepLinkMatcher.MatchResult<T>so that developers can access the properties of the subclassedMatchResultreturned byDeepLinkMatcher.match()without type casting. ( I693d3 , b/470282247 )DeepLinkMatcher.MatchResult'sT upper bound has changed fromAny?toAny. ( I6bf1a )DeepLinkRequestconstructor fieldurinow defaults to null. The secondary constructor'suriStringhas been renamed touri. ( Ia0f14 , b/522194187 )
رفع اشکالات
-
ResultEffectnow usesrememberUpdatedStateto capture the latestonResultlambda. ( I7d2a3 , b/531709234 ) - Fixed deep link matching for empty path segments. If the argument type is String, the empty path will be treated as an empty string value. Otherwise, the empty path is treated as no value provided and will fall back to defautl value. If there is no defautl value, matching will fail. ( I56575 , b/535298128 )
- Added support for empty query values in
DeepLinkRequest.uri. If the argument is of String type, the empty value will be treated as a literal empty string. Otherwise, the empty value is treated as no value provided and matching will attempt to fallback to default value. If there is no default value, matching will fail. ( I30343 , b/535127459 ) -
EntryProvidernow prioritizes matching based on key instances over key types. ( Ib5ec9 , b/533331924 ) -
SceneStatenow correctly calculates previous scenes starting from the top-most non-overlay scene. ( I91915 , b/513630541 )
Version 1.2.0-alpha06
۱۵ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha06 is released. Version 1.2.0-alpha06 contains these commits .
رفع اشکالات
- Fixed
UriDeepLinkMatcherdocumentation on uri fragments to clarify that fragments with wildcards will match any input but the input does not get extracted as arguments. ( I5ad9b , b/524677091 ) - Fixed
UriDeepLinkMatcherfailing to match with a request if the uri pattern does not contain a scheme or does not start with double slash. For example,www.example.com/homewill now match withhttp://www.example.com/home. ( Ia6b65 , b/522791926 )
Version 1.2.0-alpha05
۱ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha05 is released. Version 1.2.0-alpha05 contains these commits .
رابط برنامهنویسی کاربردی جدید
- Added a
rememberResultEventBusapi which returns aResultEventBusthat can be passed torememberResultEventBusNavEntryDecorator. This allows hoisting aResultEventBusoutside theResultEventBusNavEntryDecorator. ( Ia655b , b/516995400 )
DeepLinkRequest
- Added two KMP-compatible constructors - one that takes a DeepLinkUri and one that takes a raw string uri. ( I3c088 , b/513200887 , b/522194187 )
- (Android only) Added a constructor that takes an
Intent. ( Ia0498 , b/513200887 , b/522194187 ) - All constructors have an additional
extrasfield for aMap<String, Any>to attach additional request information. ( If81d5 , b/513200887 ) - A new
requestExtrasdsl is added as a type safe way to build a map of extras. The dsl provides aputfunction to store pairs ofRequestExtrasKeytoAny. TheMap<String, Any>.get(key)extension function can be used to read from the map with aRequestExtrasKey( I5091c , b/513200887 ) - (Android only) Added an
ActionExtrasKeyandactionExtrafunction to create an extras map withActionExtrasKey. ( Id0c90 , [b/513200887] - Added a
MimeTypeExtrasKeyandmimeTypeExtrafunction to create an extras map withMimeTypeExtrasKey. ( I85131 , b/513200887 )
DeepLinkMatcher
- Added
DeepLinkMatcher.mimeTypeFilterandDeepLinkMatcher.actionFilterfunctions to createDeepLinkMatcher.Filtersthat filterDeepLinkRequestbymimeTypeoraction(Android only). Both filters match by string equality and is case-insensitive. ( Ie7e67 , b/513191950 )
API Changes
DeepLinkRequest
- Remove
fromActionfactory function. To create a request associated with an Action, use the newDeepLinkRequest.extrasfield.( Id0c90 , b/513200887 ) - Removed
fromMimeTypefactory function. To create a request associated with a mimeType, use the newDeepLinkRequest.extrasfield. ( I85131 , b/513200887 ) - (Android-only) Removed
fromIntentfactory function. Replaced by a new constructor that takes an Intent and extras map. ( Ia0498 , b/513200887 , b/522194187 ) - Removed factory functions
fromUriandfromUriString. Replaced by new constructors that either take aDeepLinkUrior a raw string uri. ( Id5b6f , b/522194187 ) -
DeepLinkMatcher,DeepLinkMatcher.MatchResultand their subclasses now take a covariant T (out T) so that hierarchical keys will not need type casting with used with Matchers. ( I1e453 , b/525094876 ) - The
UriMatchResultconstructor param for arguments map now defaults to an empty map. ( I3acdd ) -
DeepLinkMatcher.Filterabstract class is now a functional interface. Thefilterconstructor field is removed and instead should be passed directly in the subclass. ( I9eb7d , b/522194187 )
رفع اشکالات
- Fixed popped entry disappearing immediately when popping to an entry that has a nested metadata containing lambda values. ( Idb872 , b/520494430 )
- Fixed
UriDeepLinkMatcherso that it will return a nullUriMatchResultinstead of throwingMissingFieldExceptionwhen required arguments are missing during matching. ( I5322f , b/524663005 ) - A
UriDeeplinkMatchercontaining uri with https scheme can only be matched with requests that also have https scheme. ( Ibfe22 , b/522304329 ) - Fix
UriDeepLinkMatcherto correctly identifyhttpscheme as a positive match withhttpswhen matching aDeepLinkRequestto aUriDeepLinkMatcher. ( I3a62b , b/518804264 ) -
DeepLinkMatcher.MatchResultcomparator now returns 0 by default when two results are equal. ( I48ddb , b/518841353 ) -
UriDeepLinkMatcherwill now return a nullUriMatchResultinstead of throwing an exception when match request fails due to missing required arguments. ( I669a7 , b/470282247 , b/512923412 )
Version 1.2.0-alpha04
۳ ژوئن ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha04 is released. Version 1.2.0-alpha04 contains these commits .
رفع اشکالات
- Fixed overlay animation issue where nested overlays such as
ModalBottomSheetare re-aniamting unexpectedly when the overlays above it are popped. ( Ia2b9e , b/502624496 )
Version 1.2.0-alpha03
۱۹ مه ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha03 is released. Version 1.2.0-alpha03 contains these commits .
ویژگیهای جدید
Navigation 3 now supports deep links with DeepLinkRequest and DeepLinkMatcher :
DeepLinkRequesta requested deep link containing aDeepLinkUriand an optional mimeType or action(Android only). Along with the new class are companion functions to create an instance with either auri, amimeType, or anaction. The android platform also has a helper to build a request from an 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" )DeepLinkMatcherrepresents a deep link that can be matched with aDeepLinkRequest. Each matcher instance is associated with the navigation key that supports this deep link. A navigation key can be associated with multiple matchers. CallingDeepLinkMatcher.matchwill return aMatchResultthat contains the associated navigation key if match succeeds. There are two defaultDeepLinkMatcherimplementations:UriDeepLinkMatcherfor matching deep links based on Uri, andStaticKeyDeepLinkMatcherfor matching deep links with onlyDeepLinkMatcher.Filterthat match by aBoolean. ( I3798e , b/470282247 )UriDeepLinkMatcheran opinionated implementation ofDeepLinkMatcherthat handles deep link by matchingDeepLinkUrito a Serializable navigation key. It supports deep link arguments of Primitive types or Collection of primitives such as Lists, Arrays, and Sets. ( 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 ?: HomeKeyAdded
DeepLinkUriwhich is a kotlin-multiplatform version ofandroid.net.Uri( Id4725 , b/470282247 )
Api Changes
- Bumped to
compileSdk 37to match Compose's compileSdk
رفع اشکالات
- Fixed
AnimatedBottomSheetSample'sIllegalArgumentExceptionwhen displaying multiple overlays. The sampleSceneStrategywill now correctly calculate the last non-OverlaySceneand display it under all the overlay scenes. ( If2281 , b/506733412 ) - Bumped
NavigationEventdependency to 1.1.1 which removes the no-op NavigationEventHandler when in inspection mode to enable Predictive Back in Android Studio Previews. ( I487fd )
Version 1.2.0-alpha02
۲۲ آوریل ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha02 is released. Version 1.2.0-alpha02 contains these commits .
API Changes
- Rename
onBacktoonBackCompletedand addonBackCancelledto NavigationBackHandler to support handling cancelled back gestures. ( I92741 ) - Add
NavigationBackHandlerto simplify handling back gestures and predictive back when usingSceneState. This allows developers to more easily create custom UI components that support standard back navigation and predictive gestures without manually calculating back stack deltas. ( I6a055 ) - Add
rememberNavigationEventStateto simplify connectingSceneStatewith predictive back handling. ( Iae49c )
ویژگیهای جدید
- Added a
ResultEventBusAPI to allow for passing results between NavEntries with theLocalResultEventBusprovided by the newResultEventBusNavEntryDecorator. Passed in results can be assessed as a state withResultEventBus#conflateAsStateor as a flow of results withResultEffect.
Version 1.2.0-alpha01
۸ آوریل ۲۰۲۶
androidx.navigation3:navigation3-*:1.2.0-alpha01 is released. Version 1.2.0-alpha01 contains these commits .
رفع اشکالات
- Accessing
LocalNavAnimatedContentScopefrom anOverlayScenewill no longer cause anIllegalStateExceptionasOverlayScenesare now provided with a no-opLocalAnimatedContentScope. ( I2f00c , b/486067688 )
Navigation3 Version 1.1
Version 1.1.6
۱۲ آگوست ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.6 is released. Version 1.1.6 contains these commits .
رفع اشکالات
-
NavEntry.contentKeynow defaults to a composite ofkey.toString()andkey::class.toString(). This ensures that data objects that share the same name but implement different interfaces will no longer have the samecontentKey. However, JS platform'skey::classonly returns simple class name instead of fully qualified name, so JS platform should still implement customcontentKeyfor data objects with duplicate names. ( I1fbbb , b/512534342 ) - Fixed
IllegalArgumentExceptionthrown bySaveableStateHolderfor key reuse when multiple pop transitions are in-flight simulatenously due to rapid popping from the back stack. ( I4d728 , b/516312097 )
Version 1.1.5
۲۹ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.5 is released. Version 1.1.5 contains these commits .
رفع اشکالات
- The
entryProviderDSL now prioritizesNavEntrybuilt with a key instance, for exampleentry(key = userKey) { ... }overNavEntrybuilt with a key class such asentry<UserKey>{ ... }.( Ib5ec9 , b/533331924 )
نسخه ۱.۱.۴
۱ ژوئیه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.4 is released. Version 1.1.4 contains these commits .
رفع اشکالات
- Fixed popped entry disappearing immediately when popping to an entry that has a nested metadata containing lambda values. ( Idb872 , b/520494430 )
Version 1.1.3
۱۷ ژوئن ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.3 is released. Version 1.1.3 contains these commits .
رفع اشکالات
Fixed overlay animation issue where nested overlays such as
ModalBottomSheetare re-aniamting unexpectedly when the overlays above it are popped. ( Ia2b9e , b/502624496 )Bumped
NavigationEventdependency to 1.1.2 which removed the no-opNavigationEventHandlerwhen in inspection mode to enable Predictive Back in Android Studio Previews.
نسخه ۱.۱.۲
۱۹ مه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.2 is released. Version 1.1.2 contains these commits .
رفع اشکالات
- Bumped
NavigationEventdependency to 1.1.1 which removed the no-opNavigationEventHandlerwhen in inspection mode to enable Predictive Back in Android Studio Previews.
نسخه ۱.۱.۱
۲۲ آوریل ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.1 is released. Version 1.1.1 contains these commits .
رفع اشکالات
- Accessing
LocalNavAnimatedContentScopefrom anOverlayScenewill no longer cause anIllegalStateExceptionasOverlayScenesare now provided with a no-opLocalAnimatedContentScope. ( I2f00c , b/486067688 )
نسخه ۱.۱.۰
۸ آوریل ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0 is released. Version 1.1.0 contains these commits .
1.1.0 is now stable!
Important changes since 1.0.0
Shared Elements between Scenes - Navigation3 now supports treating scenes as shared element object. This means that when the scenes change, it is possible to ensure they have a smooth transition. You can enable this by passing a SharedTransitionScope to either the NavDisplay or to rememberSceneState .
SceneDecoratorStrategy - Introduction of SceneDecoratorStrategy to support uses cases such as decorating scenes with common UI components or sharing state across scenes.
NavMetadata DSL - Navigation3 now provides a new type-safe metadata DSL. The DSL uses a new MetadataKey interface that allows for defining the key and value types that they wish to provide to the metadata map. This also added new NavMetadataKeys for NavDisplay transitions so that they can be used with the new metadata DSL to add transitions to NavDisplay .
OverlayScene Animations - The OverlayScene interface has a new onRemoved suspending callback. This callback is invoked after a key associated with the scene is removed from the backstack, but before it leaves composition. This allows exit animations called within onRemoved to complete before the overlay scene is removed from composition.
Other Changes - NavDisplay and rememberSceneState now take a List<SceneStrategy> instead of the previous single SceneStrategy parameter that was chained by the then infix. - You can now dynamically add metadata with consideration for the entry key via the EntryProvider DSL.
Version 1.1.0-rc01
۲۵ مارس ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-rc01 is released. Version 1.1.0-rc01 contains these commits .
رفع اشکالات
-
NavDisplaynow ensures that entries that are displayed underneath overlays have theirLifecyclecapped atSTARTED. This ensures APIs likedropUnlessResumedcontinue to work when using dialogs. ( If209f , b/483966071 ) - Fixed an issue in
NavDisplaywhere navigating back and forth between the same screens and interrupting the animations between the two could cause the z-order of the screens to be incorrect. ( I4d491 , b/459419800 )
Version 1.1.0-beta01
۱۱ مارس ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-beta01 is released. Version 1.1.0-beta01 contains these commits .
Version 1.1.0-alpha05
۲۵ فوریه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-alpha05 is released. Version 1.1.0-alpha05 contains these commits .
API Changes
-
NavDisplayandrememberSceneStatenow take aList<SceneStrategy>instead of the previous singleSceneStrategyparameter that was chained by thetheninfix. This more closely aligns with theList<SceneDecoratorStrategy<T>>that both of these APIs already take. The previous APIs have been deprecated. ( I78b2c , b/482108465 ) - Added a metadata #contains operator to check if the metadata map contains the given
NavMetadataKey. ( Ic30db , b/485311895 ) - Added
NavMetadataKeyDialogKeyforDialogSceneStrategyto use with Metadata DSL. ( Ic7a26 , b/483388817 )
Version 1.1.0-alpha04
۱۱ فوریه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-alpha04 is released. Version 1.1.0-alpha04 contains these commits .
ویژگیهای جدید
- Navigation3 now provides a new type-safe metadata DSL. The DSL uses a new
MetadataKeyinterface that allows for defining the key and value types that they wish to provide to the metadata map. This also added newNavMetadataKeys forNavDisplaytransitions so that they can be used with the newmetadataDSL to add transitions toNavDisplay. ( Ic10ef , Ic049c , b/476213928 )
API Changes
- The
OverlaySceneinterface has a newonRemovedsuspending callback. This callback is invoked after a key associated with the scene is removed from the backstack, but before it leaves composition. This allows exit animations called withinonRemovedto complete before the overlay scene is removed from composition. ( I29a72 , b/440558061 ) -
SceneStrategyhas separated the decoration function into a newSceneDecoratorStrategy. This new interface is what is should be used to decorate scenes. There are new APIs forNavDisplayandrememberSceneStateto allow the addition ofSceneDecoratorStrategies. ( If9385 , b/477669607 , b/477670333 )
رفع اشکالات
- Fixed an error where passing a
SharedTransitionLayoutinto either theNavDisplayorrememberSceneStateand using anyOverlayScenewould cause a crash because usingSharedTransitionLayoutonly works withNavEntriesthat are rendered as part of theAnimatedContentandOverlaySceneare rendered in their own windows separately. ( I1bb76 , b/478664101 )
Dependency Update
- From
Navigation31.0.1:Navigation3now depends onNavigationEvent1.0.2. This fixes anIllegalStateExceptioncaused by usingNavDisplayduringAndroidStudioPreviews. ( Id7212 , b/477149762 )
Version 1.1.0-alpha03
۲۸ ژانویه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits .
ویژگیهای جدید
- You can now dynamically add metadata with consideration for the entry key via the
EntryProviderDSL. ( I942fb , b/474416976 )
Version 1.1.0-alpha02
۱۴ ژانویه ۲۰۲۶
androidx.navigation3:navigation3-*:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits .
ویژگیهای جدید
-
SceneStrategynow supports nesting scenes via a newcalculatedScene(Scene)function. This means thatSceneStrategy's can be customized to provide additional functionality to other scenes. ( I5df7c , b/440333896 )
Version 1.1.0-alpha01
December 03, 2025
androidx.navigation3:navigation3-*:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits .
API Changes
-
Navigation3now supports treating scenes as shared element object. This means that when the scenes change, it is possible to ensure they have a smooth transition. You can enable this by passing aSharedTransitionScopeto either theNavDisplayor torememberSceneState. ( I15868 )
نسخه ۱.۰
Version 1.0.1
۱۱ فوریه ۲۰۲۶
androidx.navigation3:navigation3-*:1.0.1 is released. Version 1.0.1 contains these commits .
Dependency Update
-
Navigation3now depends onNavigationEvent1.0.2. This fixes anIllegalStateExceptioncaused by usingNavDisplayduringAndroidStudioPreviews. ( Id7212 , b/477149762 )
نسخه ۱.۰.۰
۱۹ نوامبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0 is released. Version 1.0.0 contains these commits .
Introducing Navigation3!
- The Navigation3 library is now stable! Navigation3 is the AndroidX Compose first approach to navigation.
- For more information, see our announcement blog post , visit the resources , and try the recipes .
Version 1.0.0-rc01
۵ نوامبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits .
رفع اشکالات
-
NavDisplaynow sets aLocalLifecycleOwnerat theScenelevel that allows scene authors to determine whether all transitions have finished by checking that theLifecycle.StateisRESUMED. The behavior of theLocalLifecycleOwnerat theNavEntrylevel is unchanged: it also remains capped atSTARTEDif a transition is in progress and is additionally capped atCREATEDif thatNavEntryhas been popped from the back stack and is in the process of animating out. ( I03113 , b/454045829 )
Version 1.0.0-beta01
۲۲ اکتبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits .
API Changes
-
SceneStrategyScopenow only has a no argument public constructor, suitable for testing yourSceneStrategyand the returnedScenein isolation. For more complex use cases, please userememberSceneState(). ( I8440c , b/451679047 )
رفع اشکالات
- Fixed infinite loop when chaining
SceneStrategywiththen. ( Iba3f0 , b/450323470 ) - Fixed screen flicker when swapping the
backStackpassed toNavDisplayand using animations. ( Ief7b5 , b/450967248 )
Version 1.0.0-alpha11
October 08, 2025
androidx.navigation3:navigation3-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits .
API Changes
- The
calculateScenemethod onSceneStrategyis no longer@Composable. Instead, consider moving this work to the construction of yourSceneStrategymethod (ie, in arememberMySceneStrategy()method) that fully allows you to define the lifetime of anyrememberSaveablevalues or keyrememberstatements off of the correct values. ( If1733 , b/448709506 ) - The
onBackparameter forSceneStrategy.calculateScenehas been moved into the new receiver scope ofSceneStrategyScopeto make it more clear that this is an optional parameter and provide an extension point for future Navigation3 features. ( I3aea3 , b/448460407 ) - The
onBacklambda passed intoNavDisplayand to yourSceneStrategyno longer provides acount: Intparameter to indicate when multiple entries should be popped. Instead, the() -> Unitlambda will now be called multiple times in a row in the rare case where your Scene requests popping multiple entries. ( Idedb5 , b/446989346 ) - Remove the
NavEntryWrapperclass and replace its functionality with a finalNavEntryclass with a new secondary constructor that takes aNavEntrywith new content. This will allow continued support for wrapping an entry with new content. ( I7da2a , b/444447130 ) - The
navEntryDecoratorfunction which creates and returns aNavEntryDecoratorhas been removed and replaced by theNavEntryDecoratorclass which is now made public and open for subclassing. ( If81f8 , b/444447434 , b/447381176 ) -
SavedStateNavEntryDecoratorhas been renamed toSaveableStateHolderNavEntryDecoratorsince it decorates entries with aSaveableStateHolder. The decorator has also been refactored from a function to a class since it is functionally a factory forNavEntryDecorator. ( Ie6013 , b/447381176 ) - Custom displays using
SceneStateas an alternative to usingNavDisplayno longer are required to use theLocalEntriesToRenderInCurrentScenecomposition local, which is now internal. ( Ic40ef , b/414668196 ) - Removed
SceneSetupNavEntryDecoratorandrememberSceneSetupNavEntryDecorator()from the public API surface. This functionality now is included by default without requiring you to manually include it. ( Ieae42 , b/444479133 ) -
NavEntry,DialogScene,SinglePaneScene, andSceneStatenow all implement equals. ( I96121 ) - Scene interface has a new metadata field to attach scene-specific metadata for NavDisplay. This allows a Scene to override the metadata on the
NavDisplay, for instance with transitions. ( I1fd96 , b/443955625 ) - Simplify
rememberNavBackStacksignature by removing the redundant generic type parameter. The function now acceptsvararg elements: NavKey. ( I03e45 ) - The default animations for
NavDisplayare now part of the common API which allows them to be called from all platforms. ( I71af9 , b/447147159 ) - Rename
EntryProviderBuildertoEntryProviderScopeto accurately reflect that the class is a Kotlin DSL providing a scope to buildNavEntries. ( Ia7465 )
رفع اشکالات
-
rememberNavBackStack()now enforces polymorphic serialization for NavKey and requires a customSavedStateConfigurationthat is configured to ensure correct state restoration. KDoc have been updated to reflect the requirement that all NavKey subtypes must be registered in the provided SerializersModule. ( I6de37 , I782f2 , b/446664383 )
Version 1.0.0-alpha10
۲۴ سپتامبر ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .
API Changes
- Add new
NavDisplayoverload that takes a list ofNavEntry<T>that has been decorated byrememberDecoratedNavEntries. ( I4025b , b/441940314 ) - Moved
DialogSceneto a new package. ( Ia5840 ) - Remove public API
DecorateNavEntry. Instead userememberDecoratedNavEntriesto wrap a NavEntry with a list of decorators. ( Id8c09 ) - Navigation3 UI now provides new default
transitionSpecproperties. ( Ibcabd ) - Added a new
SceneStateobject to help manage scenes. This also provides a newNavDisplayoverload that takes theSceneStateand theNavigationEventState. ( 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 )
رفع اشکالات
- Fix crash during predictive back when nested
NavDisplayhas a single child entry. ( I2cdc0 , b/441933162 )
Version 1.0.0-alpha09
۱۰ سپتامبر ۲۰۲۵
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 )
رفع اشکالات
-
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 .
ویژگیهای جدید
- 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 )
رفع اشکالات
- Fixed an issue where navigating would cause incorrect Lifecycle events to fire. ( I8bf6d , b/425901162 , b/434109022 )
مشکلات شناخته شده
- 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
۱۳ آگوست ۲۰۲۵
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 )
رفع اشکالات
- 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
۳۰ ژوئیه ۲۰۲۵
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
۲ ژوئیه ۲۰۲۵
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
۱۸ ژوئن ۲۰۲۵
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
۴ ژوئن ۲۰۲۵
androidx.navigation3:navigation3-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits .
رفع اشکالات
-
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 .
رفع اشکالات
- 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 .
ویژگیهای جدید
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 .