ناوبری 3
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|---|---|---|---|
24 سپتامبر 2025 | - | - | - | 1.0.0-آلفا10 |
اعلام وابستگی ها
برای افزودن وابستگی به navigation3، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven Google را بخوانید.
وابستگیهای مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.0.0-alpha10" implementation "androidx.navigation3:navigation3-ui:1.0.0-alpha10" }
کاتلین
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha10") implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha10") }
برای اطلاعات بیشتر درباره وابستگیها، به افزودن وابستگیهای ساخت نگاه کنید.
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
هیچ یادداشت انتشار برای این مصنوع وجود ندارد.
نسخه 1.0
نسخه 1.0.0-alpha10
24 سپتامبر 2025
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
(و انواع مختلف) اکنون از اضافهبار جدیدی پشتیبانی میکنند کهNavigationEventState
را میپذیرد. اضافه بارهای ساده (دریافتcurrentInfo
) حفظ می شوند و اکنون از این مدل حالت جدید به صورت داخلی استفاده می کنند. ( IC3251 , b/444734264 ) - همه Scene API ها از navigation3-ui به navigation3-runtime منتقل شده اند. این بدان معنی است که آنها اکنون در تمام سیستم عامل های پشتیبانی شده توسط navigation3-runtime در دسترس هستند. ( I431d0 , b/444449993 )
- اضافه بار جدید
rememberDecoratedNavEntries
که فهرستی ازNavEntry
را برای تزئین می گیرد. ورودی های ورودی را می توان از قبل با تزئینات ورودی دیگر تزئین کرد. ( I5a034 , b/444230270 ) - حذف پارامترهای نوع عام navigation3 ( I02540 )
- بهبود مدیریت ژنریک برای DSL
entryProvider
. اگر قبلاandroidx.navigation3.runtime.entry
را وارد می کردید، دیگر نیازی به این کار نیست. ( I299fc ) - اضافه بار
NavBackStackSerializer
مبتنی بر بازتاب را به Android محدود کنید. این امر با اعمال استفاده از اضافه بار صریحSavedStateConfiguration
در کدهای چندپلتفرمی، از شکستهای سریالسازی زمان اجرا ضمنی در پلتفرمهای غیر اندرویدی جلوگیری میکند. ( I73313 , b/420443609 ) -
swipeEdge
NavigationEvent
را به@IntDef
تبدیل کنید ( Icee54 , b/443950342 ) - سریال سازی
NavBackStack
را به اندروید محدود کنید. این از خرابی زمان اجرا در سیستم عامل های غیر اندرویدی جلوگیری می کند. برای ذخیره حالت چندپلتفرمی، از اضافه بارrememberNavBackStack
باSavedStateConfiguration
صریح استفاده کنید. ( I1e418 , b/420443609 )
رفع اشکال
- هنگامی که
NavDisplay
تودرتو دارای یک ورودی فرزند است، خرابی را در هنگام بازگشت پیشبینی برطرف کنید. ( I2cdc0 , b/441933162 )
نسخه 1.0.0-alpha09
10 سپتامبر 2025
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 بستگی دارد.
نسخه 1.0.0-alpha08
27 آگوست 2025
androidx.navigation3:navigation3-*:1.0.0-alpha08
منتشر شد. نسخه 1.0.0-alpha08 حاوی این تعهدات است.
ویژگی های جدید
- اهداف جدید Kotlin MultiPlatform (KMP) به مصنوعات
Navigation3 Runtime
اضافه شده است.Navigation3 Runtime
اکنون در مجموع از پلتفرمهای زیر پشتیبانی میکند: JVM (اندروید و دسکتاپ)، Native (Linux، iOS، watchOS، macOS، MinGW) و وب (JavaScript، 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 معرفی شد که باعث شد چرخههای زندگی به جای ورودیهای فردی بر اساس صحنهها باشد، که چرخه حیات را برای هر مواردی که
key
ارائهشده بهNavEntry
یکString
نیست یاNavEntry
شماcontentKey
لغو نکرده و آن را برابر باkey
قرار نداده است، شکسته میشود (توجه داشته باشید که انجام این کار باعث میشود که کلید B درBundle
ذخیره شود). این برای نسخه بعدی رفع شده است. ( b/440145700 )
نسخه 1.0.0-alpha07
13 آگوست 2025
androidx.navigation3:navigation3-*:1.0.0-alpha07
منتشر شد. نسخه 1.0.0-alpha07 حاوی این commit ها است.
به روز رسانی MinSdk
- minSdk پیشفرض برای AndroidX از API 21 به API 23 منتقل شده است ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
تغییرات API
-
SavedStateNavEntryDecorator
اکنون ازSaveableStateRegistry
ساخته شده درSaveableStateProvider
برای ذخیره و بازیابی حالت ها استفاده می کند. ( If8d9a ) -
predictivePopTransitionSpec
اکنون لبه کشیدن انگشت را به عنوان یک پارامتر ارائه میکند و به شما این امکان را میدهد تا انتقال را بر اساس اینکه کاربر از چه لبهای ژست Predictive Back را شروع کرده است، سفارشی کنید. ( I753a8 )
رفع اشکال
- مشکلی را برطرف کرد که باعث میشد صحنههای سفارشی بینهایت دوباره محاسبه شوند، زیرا آخرین صحنه به خاطر نمیماند. ( I7ba84 , b/418153031 )
به روز رسانی وابستگی
- Navigation3 اکنون به Navigation Event
1.0.0-alpha06
بستگی دارد.
نسخه 1.0.0-alpha06
30 جولای 2025
androidx.navigation3:navigation3-*:1.0.0-alpha06
منتشر شد. نسخه 1.0.0-alpha06 حاوی این تعهدات است.
به روز رسانی وابستگی
- Navigation3 اکنون به Navigation Event
1.0.0-alpha05
بستگی دارد.
نسخه 1.0.0-alpha05
2 ژوئیه 2025
androidx.navigation3:navigation3-*:1.0.0-alpha05
منتشر شد. نسخه 1.0.0-alpha05 حاوی این تعهدات است.
تغییرات رفتار
- وضعیت
NavEntry
اکنون کاملاً بر اساس لیست فعلی تزئینات ارسال شده بهNavDisplay
است. این بدان معنی است که دکوراتورها باید در امتداد پشته های پشتی شما در صورت وجود پشته های پشتی متعدد تعویض شوند تا وضعیت NavEntries در پشته پشتی حفظ شود. در غیر این صورت، حالت ها به گونه ای پاک می شوند که گویی ورودی ها ظاهر شده اند (به جای تعویض). ( I7a759 , b/428033667 )
نسخه 1.0.0-alpha04
18 ژوئن 2025
androidx.navigation3:navigation3-*:1.0.0-alpha04
منتشر شد. نسخه 1.0.0-alpha04 حاوی این تعهدات است.
تغییرات API
-
NavEntry.content
اکنون خصوصی است. برای فراخوانی محتوایNavEntry
، apiNavEntry.Content()
جدید را فراخوانی کنید که دیگر نیازی به پارامترkey
برای فراخوانی ندارد. ( Icd0fd , b/420991203 ) -
NavEntry.key
اکنون یک فیلد خصوصی است.NavEntry
و وضعیتهای مربوط به آن باید با فیلدcontentKey
جدید که از محتوای لامبدای جدیدcontentKeyFactory
ایجاد میشود و بهطور پیشفرض به هش قابل ذخیرهسازی تولید شده ازNavEntry.key
( I81a6c , b/422001357 , b/420991203, b/420991203, b1d7403 , b/420991203, b/2d744) شناسایی شوند. b/422841812 )
تغییرات وابستگی
- Navigation3 اکنون به مصنوع جدید
androidx.navigationevent.compose
بستگی دارد.
نسخه 1.0.0-alpha03
4 ژوئن 2025
androidx.navigation3:navigation3-*:1.0.0-alpha03
منتشر شد. نسخه 1.0.0-alpha03 حاوی این تعهدات است.
رفع اشکال
-
Navigation3
دیگر حالت های دکوراتور را برایbackStacks
که تعویض شده و با نمونهbackStack
دیگری جایگزین شده اند پاک نمی کند. ( I28a42 , b/415076044 )
نسخه 1.0.0-alpha02
23 مه 2025
androidx.navigation3:navigation3-*:1.0.0-alpha02
منتشر شد. نسخه 1.0.0-alpha02 حاوی این تعهدات است.
رفع اشکال
- مشکلی در
SavedStateNavEntryDecorator
که باعث برخورد برای کلاسهای داده مختلف با مقادیر ویژگی یکسان میشد، برطرف شد. ( b/418070648 , If4775 ) - مشکل کلاس از دست رفته را که در هنگام اجرا بدون اعلام وابستگی های صریح باعث خرابی می شد، برطرف شد. ( b/419049149 , I4b4ed )
نسخه 1.0.0-alpha01
20 مه 2025
androidx.navigation3:navigation3-*:1.0.0-alpha01
منتشر شد. نسخه 1.0.0-alpha01 حاوی این تعهدات است.
ویژگی های جدید
Navigation3 یک کتابخانه ناوبری جدید است که به طور خاص برای مدیریت ناوبری درون برنامه ای Jetpack Compose ساخته شده است. مصنوع androidx.navigation3.runtime
بلوک های ساختمان را فراهم می کند، در حالی که مصنوع androidx.navigation3.ui
لایه UI را از طریق NavDisplay
API فراهم می کند. توسعهدهندگان میتوانند وضعیت خود را مستقیماً به تابع composable 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 مراجعه کنید.