با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Navigation 3 یک کتابخانه ناوبری جدید است که برای کار با Compose طراحی شده است. با Navigation 3، کنترل کاملی بر پشته پشتی خود دارید، و پیمایش به مقصد و از مقصد به سادگی افزودن و حذف موارد از یک لیست است. این یک سیستم ناوبری برنامه انعطاف پذیر با ارائه موارد زیر ایجاد می کند:
قراردادهای مدل سازی پشته پشته، که در آن هر ورودی در پشته پشته محتوایی را نشان می دهد که کاربر به آن پیمایش کرده است.
رابط کاربری که به طور خودکار با تغییرات پشته (از جمله انیمیشن ها) به روز می شود
محدوده ای برای آیتم ها در پشته پشتی، که اجازه می دهد تا زمانی که یک آیتم در پشته است، حالت حفظ شود
یک سیستم چیدمان تطبیقی که امکان نمایش همزمان چندین مقصد را فراهم میکند و امکان جابهجایی یکپارچه بین آن طرحبندیها را فراهم میکند.
مکانیزمی برای ارتباط محتوا با چیدمان والد (فراداده)
در سطح بالا، Navigation 3 را به روش های زیر پیاده سازی می کنید:
محتوایی را تعریف کنید که کاربران می توانند در برنامه شما به سمت آن حرکت کنند، هر کدام با یک کلید منحصر به فرد، و یک تابع برای حل آن کلید به محتوا اضافه کنید. به حل کلیدهای محتوا مراجعه کنید.
یک پشته پشتی ایجاد کنید که کلیدها روی آن فشار داده شده و در حین حرکت کاربران در برنامه شما حذف شوند. به ایجاد پشته پشتی مراجعه کنید.
از NavDisplay برای نمایش پشته برنامه خود استفاده کنید. هر زمان که پشته پشتی تغییر می کند، رابط کاربری را برای نمایش محتوای مرتبط به روز می کند. به نمایش پشته پشته مراجعه کنید.
استراتژیهای صحنهNavDisplay را در صورت نیاز برای پشتیبانی از طرحبندیهای تطبیقی و پلتفرمهای مختلف تغییر دهید.
می توانید کد منبع کامل Navigation 3 را در AOSP مشاهده کنید.
بهبود در ناوبری Jetpack
Navigation 3 API اصلی Jetpack Navigation را به روشهای زیر بهبود میبخشد:
ادغام ساده تری با Compose ارائه می دهد
کنترل کامل پشته را به شما ارائه می دهد
ایجاد طرحبندیهایی را ممکن میسازد که میتوانند همزمان بیش از یک مقصد را از پشته بخوانند و به آنها اجازه میدهد تا با تغییرات اندازه پنجره و سایر ورودیها سازگار شوند.
در این پست وبلاگ درباره اصول Navigation 3 و انتخاب های طراحی API بیشتر بخوانید.
نمونه کد
مخزن دستور العمل ها شامل نمونه هایی از نحوه استفاده از بلوک های سازنده Navigation 3 برای حل چالش های رایج ناوبری است.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Navigation 3\n\n| **Experimental:** Navigation 3 is in alpha. The APIs may change in the future. Please file bugs and feedback using the [issue tracker](https://issuetracker.google.com/issues/new?component=1750212&template=2102223).\n\nNavigation 3 is a new navigation library designed to work with Compose. With\nNavigation 3, you have full control over your back stack, and navigating to and\nfrom destinations is as simple as adding and removing items from a list. It\ncreates a flexible app navigation system by providing:\n\n- Conventions for modeling a back stack, where each entry on the back stack represents content that the user has navigated to\n- A UI that automatically updates with back stack changes (including animations)\n- A scope for items in the back stack, allowing state to be retained while an item is in the back stack\n- An adaptive layout system that allows multiple destinations to be displayed at the same time, and allowing seamless switching between those layouts\n- A mechanism for content to communicate with its parent layout (metadata)\n\nAt a high level, you implement Navigation 3 in the following ways:\n\n1. Define the content that users can navigate to in your app, each with a unique key, and add a function to resolve that key to the content. See [Resolve keys\n to content](/guide/navigation/navigation-3/basics#resolve-keys).\n2. Create a back stack that keys are pushed onto and removed as users navigate your app. See [Create a back stack](/guide/navigation/navigation-3/basics#create-back).\n3. Use a [`NavDisplay`](/reference/kotlin/androidx/navigation3/ui/package-summary#NavDisplay(kotlin.collections.List,androidx.compose.ui.Modifier,androidx.compose.ui.Alignment,kotlin.Function1,kotlin.collections.List,androidx.navigation3.ui.SceneStrategy,androidx.compose.animation.SizeTransform,kotlin.Function1,kotlin.Function1,kotlin.Function1,kotlin.Function1)) to display your app's back stack. Whenever the back stack changes, it updates the UI to display relevant content. See [Display\n the back stack](/guide/navigation/navigation-3/basics#display-back).\n4. Modify `NavDisplay`'s [scene strategies](/guide/navigation/navigation-3/custom-layouts) as needed to support adaptive layouts and different platforms.\n\nYou can see the [full source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:navigation3/) for Navigation 3 on AOSP.\n\nImprovements upon Jetpack Navigation\n------------------------------------\n\nNavigation 3 improves upon the original Jetpack Navigation API in the following\nways:\n\n- Provides a simpler integration with Compose\n- Offers you full control of the back stack\n- Makes it possible to create layouts that can read more than one destination from the back stack at the same time, allowing them to adapt to changes in window size and other inputs.\n\nRead more about Navigation 3's principles and API design choices in [this blog\npost](https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html).\n\nCode samples\n------------\n\nThe [recipes repository](https://github.com/android/nav3-recipes) contains examples of how to use the\nNavigation 3 building blocks to solve common navigation challenges."]]