با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
کنترل کننده ناوبری یکی از مفاهیم کلیدی در ناوبری است. نمودار ناوبری را نگه میدارد و روشهایی را نشان میدهد که به برنامه شما اجازه میدهد بین مقصدهای موجود در نمودار حرکت کند.
هنگام استفاده از مؤلفه Navigation ، با استفاده از کلاس NavController یک کنترلر ناوبری ایجاد می کنید. NavController API مرکزی ناوبری است. این برنامه مقصدهایی را که کاربر بازدید کرده است را ردیابی می کند و به کاربر اجازه می دهد بین مقصد حرکت کند. این راهنما نحوه ایجاد NavController در برنامه خود را نشان می دهد.
برای اطلاعات در مورد نحوه افزودن یک نمودار ناوبری به NavController خود، به طراحی نمودار پیمایش خود مراجعه کنید. NavController چند راه مختلف برای پیمایش به مقصد در نمودار خود ارائه می دهد. برای اطلاعات بیشتر، به پیمایش به مقصد مراجعه کنید.
نوشتن
برای ایجاد NavController هنگام استفاده از Jetpack Compose، rememberNavController() را فراخوانی کنید:
valnavController=rememberNavController()
شما باید NavController در سلسله مراتب قابل ترکیب خود ایجاد کنید. باید به اندازهای بالا باشد که همه اجزای سازندهای که باید به آن ارجاع دهند، بتوانند این کار را انجام دهند.
انجام این کار به شما امکان می دهد از NavController به عنوان تنها منبع حقیقت برای به روز رسانی اجزای سازنده خارج از صفحه نمایش خود استفاده کنید. این از اصول بالا بردن حالت ایالت پیروی می کند.
بازدیدها
اگر از چارچوب Views UI استفاده می کنید، می توانید NavController خود را با استفاده از یکی از روش های زیر بسته به زمینه بازیابی کنید:
نمودار ناوبری خود را طراحی کنید : راهنمای جزئیات نحوه افزودن یک نمودار به NavController خود که شامل تمام مقصدهای برنامه شما باشد.
پیمایش به مقصد : راهنمای نحوه استفاده از NavController برای حرکت بین مقصدها در نمودار ناوبری.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Create a navigation controller\n\nThe navigation controller is one of the [key concepts](/guide/navigation#types) in navigation. It\nholds the navigation graph and exposes methods that allow your app to move\nbetween the destinations in the graph.\n\nWhen using the [Navigation component](/reference/androidx/navigation/package-summary), you create a navigation controller\nusing the [`NavController`](/reference/androidx/navigation/NavController) class. [`NavController`](/reference/androidx/navigation/NavController) is the central\nnavigation API. It tracks which destinations the user has visited, and allows\nthe user to move between destinations. This guide demonstrates how to create a\n`NavController` in your app.\n\nFor information on how to add a navigation graph to your `NavController`, see\n[Design your navigation graph](/guide/navigation/design). `NavController` provides a few different ways\nto navigate to the destinations in its graph. For more, see [Navigate to a\ndestination](/guide/navigation/use-graph/navigate).\n| **Note:** Each `NavHost` you create has its own corresponding `NavController`. The `NavController` provides access to the `NavHost`'s graph.\n\nCompose\n-------\n\nTo create a `NavController` when using Jetpack Compose, call\n[`rememberNavController()`](/reference/kotlin/androidx/navigation/compose/package-summary#rememberNavController(kotlin.Array)): \n\n val navController = rememberNavController()\n\nYou should create the `NavController` high in your composable hierarchy. It\nneeds to be high enough that all the composables that need to reference it can\ndo so.\n\nDoing so lets you to use the `NavController` as the single source of truth for\nupdating composables outside of your screens. This follows the principles of\n[state hoisting](/jetpack/compose/state#state-hoisting).\n\nViews\n-----\n\nIf you are using the Views UI framework, you can retrieve your NavController\nusing one of the following methods depending on the context:\n\n**Kotlin:**\n\n- [`Fragment.findNavController()`](/reference/kotlin/androidx/navigation/fragment/package-summary#(androidx.fragment.app.Fragment).findNavController())\n- [`View.findNavController()`](/reference/kotlin/androidx/navigation/package-summary#%28android.view.View%29.findNavController%28%29)\n- [`Activity.findNavController(viewId: Int)`](/reference/kotlin/androidx/navigation/package-summary#(android.app.Activity).findNavController(kotlin.Int))\n\n**Java:**\n\n- [`NavHostFragment.findNavController(Fragment)`](/reference/androidx/navigation/fragment/NavHostFragment#findNavController(androidx.fragment.app.Fragment))\n- [`Navigation.findNavController(Activity, @IdRes int viewId)`](/reference/androidx/navigation/Navigation#findNavController(android.app.Activity,%20int))\n- [`Navigation.findNavController(View)`](/reference/androidx/navigation/Navigation#findNavController(android.view.View))\n\nTypically, you first get a `NavHostFragment`, and then retrieve the\n`NavController` from the fragment. The following snippet demonstrates this: \n\n### Kotlin\n\n val navHostFragment =\n supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment\n val navController = navHostFragment.navController\n\n### Java\n\n NavHostFragment navHostFragment =\n (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);\n NavController navController = navHostFragment.getNavController();\n\n| **Warning:** You can encounter problems when creating the `NavHostFragment` using `FragmentContainerView` or when manually adding the `NavHostFragment` to your activity using a `FragmentTransaction`. If you do so, you can cause `Navigation.findNavController(Activity, @IdRes int)` to fail if you attempt to retrieve the `NavController` in `onCreate()`. You should retrieve the `NavController` directly from the `NavHostFragment` instead, as in the preceding example.\n\nFurther reading\n---------------\n\n- **[Design your navigation graph](/guide/navigation/design):** A guide detailing how to add a graph to your `NavController` that contains all the destinations in your app.\n- **[Navigate to a destination](/guide/navigation/use-graph/navigate):** A guide detailing how to use the `NavController` to move between destinations in your navigation graph."]]