ناوبری3

Navigation 3 یک کتابخانه ناوبری جدید است که برای کار با Compose طراحی شده است.
آخرین به‌روزرسانی انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
۲۵ فوریه ۲۰۲۶ ۱.۰.۱ - - ۱.۱.۰-آلفا۰۵

اعلام وابستگی‌ها

برای افزودن وابستگی به navigation3، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's Maven را مطالعه کنید.

وابستگی‌های مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:

Groovy

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.1.0-alpha05"
    implementation "androidx.navigation3:navigation3-ui:1.1.0-alpha05"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.1.0-alpha05")
    implementation("androidx.navigation3:navigation3-ui:1.1.0-alpha05")
}

برای اطلاعات بیشتر در مورد وابستگی‌ها، به «افزودن وابستگی‌های ساخت» مراجعه کنید.

بازخورد

بازخورد شما به بهبود Jetpack کمک می‌کند. اگر مشکلات جدیدی کشف کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. می‌توانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد یک مسئله جدید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

هیچ یادداشت انتشاری برای این مصنوع وجود ندارد.

نسخه ۱.۱

نسخه ۱.۱.۰-آلفا۰۵

۲۵ فوریه ۲۰۲۶

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 ).
  • DialogKey NavMetadataKey برای 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 اضافه کرده است تا بتوان از آنها با DSL metadata جدید برای افزودن انتقال‌ها به 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 )

به‌روزرسانی وابستگی

  • از Navigation3 1.0.1: Navigation3 اکنون به NavigationEvent 1.0.2 وابسته است. این مورد، خطای IllegalStateException ناشی از استفاده از NavDisplay در طول پیش‌نمایش‌های AndroidStudio را برطرف می‌کند. ( Id7212 ، b/477149762 )

نسخه ۱.۱.۰-آلفا۰۳

۲۸ ژانویه ۲۰۲۶

androidx.navigation3:navigation3-*:1.1.0-alpha03 منتشر شد. نسخه 1.1.0-alpha03 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • اکنون می‌توانید به صورت پویا فراداده را با در نظر گرفتن کلید ورودی از طریق EntryProvider DSL اضافه کنید. ( 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 اکنون به NavigationEvent 1.0.2 وابسته است. این مورد، خطای IllegalStateException ناشی از استفاده از NavDisplay در طول پیش‌نمایش‌های AndroidStudio را برطرف می‌کند. ( Id7212 ، b/477149762 )

نسخه ۱.۰.۰

۱۹ نوامبر ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0 منتشر شد. نسخه 1.0.0 شامل این کامیت‌ها است.

معرفی Navigation3!

نسخه ۱.۰.۰-rc01

۵ نوامبر ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 شامل این کامیت‌ها است.

رفع اشکالات

  • NavDisplay اکنون یک LocalLifecycleOwner در سطح Scene تنظیم می‌کند که به نویسندگان صحنه اجازه می‌دهد با بررسی اینکه Lifecycle.State RESUMED است، مشخص کنند که آیا همه انتقال‌ها به پایان رسیده‌اند یا خیر. رفتار 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 یا دستورات key remember را از مقادیر صحیح تعریف کنید. ( 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 )
  • مدیریت ژنریک‌ها برای entryProvider DSL بهبود یافته است. اگر قبلاً androidx.navigation3.runtime.entry را وارد می‌کردید، دیگر نیازی به این کار نیست. ( I299fc )
  • محدود کردن سربارگذاری NavBackStackSerializer مبتنی بر بازتاب به اندروید. این کار با اعمال استفاده از سربارگذاری صریح SavedStateConfiguration در کد چند پلتفرمی، از شکست‌های سریال‌سازی ضمنی زمان اجرا در پلتفرم‌های غیر اندروید جلوگیری می‌کند. ( I73313 ، b/420443609 )
  • swipeEdge مربوط به NavigationEvent را به یک @IntDef تبدیل کنید ( Icee54 , b/443950342 )
  • سریال‌سازی NavBackStack به اندروید محدود کنید. این کار از خطاهای زمان اجرا در پلتفرم‌های غیر اندروید جلوگیری می‌کند. برای ذخیره وضعیت چند پلتفرمی، از overload rememberNavBackStack با یک 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 )

تغییرات وابستگی

نسخه ۱.۰.۰-آلفا۰۸

۲۷ آگوست ۲۰۲۵

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

تغییرات API

  • SavedStateNavEntryDecorator اکنون از SaveableStateRegistry که در SaveableStateProvider تعبیه شده است برای ذخیره و بازیابی حالت‌ها استفاده می‌کند. ( If8d9a )
  • ویژگی predictivePopTransitionSpec اکنون لبه‌ی سوایپ را به عنوان پارامتر ارائه می‌دهد و به شما امکان می‌دهد تا انتقال را بر اساس لبه‌ای که کاربر حرکت Predictive Back را از آن شروع کرده است، سفارشی کنید. ( I753a8 )

رفع اشکالات

  • مشکلی که باعث می‌شد صحنه‌های سفارشی بی‌نهایت بار دوباره محاسبه شوند، برطرف شد، زیرا جدیدترین صحنه به خاطر سپرده نمی‌شد. ( I7ba84 ، b/418153031 )

به‌روزرسانی وابستگی

نسخه ۱.۰.۰-alpha06

۳۰ ژوئیه ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-alpha06 منتشر شد. نسخه 1.0.0-alpha06 شامل این کامیت‌ها است.

به‌روزرسانی وابستگی

نسخه ۱.۰.۰-آلفا۰۵

۲ ژوئیه ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-alpha05 منتشر شد. نسخه 1.0.0-alpha05 شامل این کامیت‌ها است.

تغییرات رفتاری

  • وضعیت NavEntry اکنون کاملاً بر اساس لیست فعلی دکوراتورهای ارسالی به NavDisplay است. این بدان معناست که در صورت وجود چندین پشته پشتی، دکوراتورها باید در امتداد پشته‌های پشتی شما جابجا شوند تا وضعیت NavEntries در پشته پشتی حفظ شود. در غیر این صورت، وضعیت‌ها طوری پاک می‌شوند که انگار ورودی‌ها برداشته شده‌اند (به جای تعویض). ( I7a759 , b/428033667 )

نسخه ۱.۰.۰-آلفا۰۴

۱۸ ژوئن ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-alpha04 منتشر شد. نسخه 1.0.0-alpha04 شامل این کامیت‌ها است.

تغییرات API

  • NavEntry.content اکنون خصوصی است. برای فراخوانی محتوای NavEntry ، API جدید NavEntry.Content() را فراخوانی کنید که دیگر نیازی به پارامتر key برای فراخوانی ندارد. ( Icd0fd , b/420991203 )
  • NavEntry.key اکنون یک فیلد خصوصی است. NavEntry و حالت‌های مرتبط با آن باید توسط فیلد contentKey جدید که از لامبدا contentKeyFactory جدید تولید می‌شود، شناسایی شوند و پیش‌فرض آن یک هش قابل ذخیره تولید شده از NavEntry.key است ( I81a6c ، b/422001357 ، b/420991203 I2d7d4 ، b/420991203 ، b/422841812 ).

تغییرات وابستگی

  • Navigation3 اکنون به مصنوع جدید androidx.navigationevent.compose بستگی دارد.

نسخه ۱.۰.۰-آلفا۰۳

۴ ژوئن ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-alpha03 منتشر شد. نسخه 1.0.0-alpha03 شامل این کامیت‌ها است.

رفع اشکالات

  • Navigation3 دیگر حالت‌های دکوراتور مربوط به backStacks که حذف شده و با نمونه‌ی دیگری backStack جایگزین شده‌اند را پاک نمی‌کند. ( I28a42 , b/415076044 )

نسخه ۱.۰.۰-آلفا۰۲

۲۳ مه ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-alpha02 منتشر شد. نسخه 1.0.0-alpha02 شامل این کامیت‌ها است.

رفع اشکالات

  • مشکلی در SavedStateNavEntryDecorator که باعث ایجاد تصادم برای کلاس‌های داده مختلف با مقادیر ویژگی یکسان می‌شد، برطرف شد. ( b/418070648 , Iff4775 )
  • مشکل فقدان کلاس که باعث خرابی هنگام اجرا بدون تعریف وابستگی‌های صریح می‌شد، برطرف شد. ( b/419049149 , I4b4ed )

نسخه ۱.۰.۰-آلفا۰۱

۲۰ مه ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-alpha01 منتشر شد. نسخه 1.0.0-alpha01 شامل این کامیت‌ها است.

ویژگی‌های جدید

Navigation3 یک کتابخانه ناوبری جدید است که به طور خاص برای مدیریت ناوبری درون برنامه‌ای Jetpack Compose ساخته شده است. artifact مربوط به androidx.navigation3.runtime بلوک‌های سازنده را فراهم می‌کند، در حالی که artifact مربوط به androidx.navigation3.ui لایه رابط کاربری را از طریق NavDisplay API فراهم می‌کند. توسعه‌دهندگان می‌توانند وضعیت خود را مستقیماً به تابع قابل ترکیب NavDisplay ارائه دهند، که محتوا را بر اساس تغییرات در وضعیت توسعه‌دهنده تغییر می‌دهد.

@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 */ }
})

برای اطلاعات بیشتر، به راهنمای Navigation3 مراجعه کنید.

،

ناوبری3

Navigation 3 یک کتابخانه ناوبری جدید است که برای کار با Compose طراحی شده است.
آخرین به‌روزرسانی انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
۲۵ فوریه ۲۰۲۶ ۱.۰.۱ - - ۱.۱.۰-آلفا۰۵

اعلام وابستگی‌ها

برای افزودن وابستگی به navigation3، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's Maven را مطالعه کنید.

وابستگی‌های مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:

Groovy

dependencies {
    implementation "androidx.navigation3:navigation3-runtime:1.1.0-alpha05"
    implementation "androidx.navigation3:navigation3-ui:1.1.0-alpha05"
}

Kotlin

dependencies {
    implementation("androidx.navigation3:navigation3-runtime:1.1.0-alpha05")
    implementation("androidx.navigation3:navigation3-ui:1.1.0-alpha05")
}

برای اطلاعات بیشتر در مورد وابستگی‌ها، به «افزودن وابستگی‌های ساخت» مراجعه کنید.

بازخورد

بازخورد شما به بهبود Jetpack کمک می‌کند. اگر مشکلات جدیدی کشف کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. می‌توانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد یک مسئله جدید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

هیچ یادداشت انتشاری برای این مصنوع وجود ندارد.

نسخه ۱.۱

نسخه ۱.۱.۰-آلفا۰۵

۲۵ فوریه ۲۰۲۶

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 ).
  • DialogKey NavMetadataKey برای 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 اضافه کرده است تا بتوان از آنها با DSL metadata جدید برای افزودن انتقال‌ها به 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 )

به‌روزرسانی وابستگی

  • از Navigation3 1.0.1: Navigation3 اکنون به NavigationEvent 1.0.2 وابسته است. این مورد، خطای IllegalStateException ناشی از استفاده از NavDisplay در طول پیش‌نمایش‌های AndroidStudio را برطرف می‌کند. ( Id7212 ، b/477149762 )

نسخه ۱.۱.۰-آلفا۰۳

۲۸ ژانویه ۲۰۲۶

androidx.navigation3:navigation3-*:1.1.0-alpha03 منتشر شد. نسخه 1.1.0-alpha03 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • اکنون می‌توانید به صورت پویا فراداده را با در نظر گرفتن کلید ورودی از طریق EntryProvider DSL اضافه کنید. ( 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 اکنون به NavigationEvent 1.0.2 وابسته است. این مورد، خطای IllegalStateException ناشی از استفاده از NavDisplay در طول پیش‌نمایش‌های AndroidStudio را برطرف می‌کند. ( Id7212 ، b/477149762 )

نسخه ۱.۰.۰

۱۹ نوامبر ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0 منتشر شد. نسخه 1.0.0 شامل این کامیت‌ها است.

معرفی Navigation3!

نسخه ۱.۰.۰-rc01

۵ نوامبر ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 شامل این کامیت‌ها است.

رفع اشکالات

  • NavDisplay اکنون یک LocalLifecycleOwner در سطح Scene تنظیم می‌کند که به نویسندگان صحنه اجازه می‌دهد با بررسی اینکه Lifecycle.State RESUMED است، مشخص کنند که آیا همه انتقال‌ها به پایان رسیده‌اند یا خیر. رفتار 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 یا دستورات key remember را از مقادیر صحیح تعریف کنید. ( 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 )
  • مدیریت ژنریک‌ها برای entryProvider DSL بهبود یافته است. اگر قبلاً androidx.navigation3.runtime.entry را وارد می‌کردید، دیگر نیازی به این کار نیست. ( I299fc )
  • محدود کردن سربارگذاری NavBackStackSerializer مبتنی بر بازتاب به اندروید. این کار با اعمال استفاده از سربارگذاری صریح SavedStateConfiguration در کد چند پلتفرمی، از شکست‌های سریال‌سازی ضمنی زمان اجرا در پلتفرم‌های غیر اندروید جلوگیری می‌کند. ( I73313 ، b/420443609 )
  • swipeEdge مربوط به NavigationEvent را به یک @IntDef تبدیل کنید ( Icee54 , b/443950342 )
  • Restrict NavBackStack serialization to Android. This prevents runtime failures on non-Android platforms. For multiplatform state saving, use the rememberNavBackStack overload with an explicit SavedStateConfiguration . ( I1e418 , b/420443609 )

رفع اشکالات

  • Fix crash during predictive back when nested NavDisplay has 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 DecoratedNavEntryProvider has been replaced with rememberDecoratedNavEntries that creates and return NavEntries decorated with the list of provided decorators ( I0fe1c , b/441328236 )
  • NavBackStack is now generic over the NavKey type. This allows apps and libraries to define custom key types for their back stacks, rather than being restricted to NavKey . ( I4d190 , Iad2f4 , b/420443609 )
  • NavBackStack is 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 )
  • RememberNavBackStack has been moved to commonMain to ensure it is provided on all platform targets. ( Id69e7 , b/420443609 )

رفع اشکالات

  • NavDisplay now correctly moves each individual NavEntry to the correct Lifecycle.State . ( I30aac , b/440145700 )
  • Fixed an issue where NavDisplay would ignore any nested NavigationEventDispatcherOwner set via the NavigationEvent library's LocalNavigationEventDispatcherOwner . ( I6224a )

Dependency Changes

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 Runtime artifacts. Navigation3 Runtime now 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 for Navigation3 UI artifact. On other platforms, you will need to implement your own custom NavDisplay . If you would like to see it supported, please vote on the Jetbrains issue here and track the progress for additional support there.
  • The NavDisplayInfo object is now public and can be used to retrieve the list of visible entries from the NavDisplay . ( Ibc91f )

API Changes

  • Added a new NavBackStackSerializer to be used in conjunction with rememberNavBackStack to perform state restoration. rememberNavBackStack() now also takes a SavedStateConfiguration that can be used to provide your own configuration. ( I2f4d2 , I4cd58 , b/420443609 )

رفع اشکالات

مشکلات شناخته شده

  • 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 key provided to the NavEntry is not a String or your NavEntry has not overridden the contentKey and set it equal to the key (note that doing this enforces that your key can be saved into a Bundle ). 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

API Changes

  • SavedStateNavEntryDecorator now uses the SaveableStateRegistry built into SaveableStateProvider to save and restore states. ( If8d9a )
  • The predictivePopTransitionSpec is 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

Version 1.0.0-alpha06

۳۰ ژوئیه ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .

Dependency Update

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 the NavDisplay . 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.content is now private. To invoke NavEntry content, call the new NavEntry.Content() api which no longer requires a key parameter to invoke. ( Icd0fd , b/420991203 )
  • NavEntry.key is now a private field. The NavEntry and its relevant states should be identified by the new contentKey field which is generated from the new contentKeyFactory lambda and defaults to a saveable hash generated from NavEntry.key ( I81a6c , b/422001357 , b/420991203 I2d7d4 , b/420991203 , b/422841812 )

Dependency Changes

  • Navigation3 now depends on the new androidx.navigationevent.compose artifact.

Version 1.0.0-alpha03

۴ ژوئن ۲۰۲۵

androidx.navigation3:navigation3-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits .

رفع اشکالات

  • Navigation3 will no longer clear decorator states for backStacks that have been swapped out and replaced with another backStack instance. ( 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 SavedStateNavEntryDecorator which 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 .