קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
סרגל הניווט מאפשר למשתמשים לעבור בין יעדים באפליקציה. כדאי להשתמש בסרגלי ניווט במקרים הבאים:
שלושה עד חמישה יעדים בעלי חשיבות שווה
גדלים קומפקטיים של חלונות
יעדים עקביים בכל מסכי האפליקציה
איור 1. סרגל ניווט עם 4 יעדים.
בדף הזה מוסבר איך להציג סרגל ניווט באפליקציה עם מסכים קשורים וניווט בסיסי.
משטח API
משתמשים בקומפוזיציות NavigationBar ו-NavigationBarItem כדי להטמיע לוגיקה של מעבר ליעד. כל NavigationBarItem מייצג יעד יחיד.
NavigationBarItem כולל את הפרמטרים העיקריים הבאים:
selected: קובע אם הפריט הנוכחי מודגש חזותית.
onClick(): פונקציית lambda נדרשת שמגדירה את הפעולה שתתבצע כשהמשתמש ילחץ על הפריט. כאן בדרך כלל מטפלים באירועי ניווט, מעדכנים את מצב הפריט שנבחר או טוענים את התוכן המתאים.
label: הצגת טקסט בתוך הפריט. אופציונלי.
icon: הצגת סמל בתוך הפריט. אופציונלי.
דוגמה: סרגל ניווט תחתון
קטע הקוד הבא מטמיע סרגל ניווט תחתון עם פריטים, כדי שהמשתמשים יוכלו לנווט בין מסכים שונים באפליקציה:
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-08-27 (שעון UTC).
[[["התוכן קל להבנה","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-08-27 (שעון UTC)."],[],[],null,["The [navigation bar](https://m3.material.io/components/navigation-bar/overview) allows users to switch between destinations in an app. You\nshould use navigation bars for:\n\n- Three to five destinations of equal importance\n- Compact window sizes\n- Consistent destinations across app screens\n\n**Figure 1.** A navigation bar with 4 destinations.\n\nThis page shows you how to display a navigation bar in your app with related\nscreens and basic navigation.\n\nAPI surface\n\nUse the [`NavigationBar`](/reference/kotlin/androidx/compose/material3/package-summary#NavigationBar(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.WindowInsets,kotlin.Function1)) and [`NavigationBarItem`](/reference/kotlin/androidx/compose/material3/package-summary#(androidx.compose.foundation.layout.RowScope).NavigationBarItem(kotlin.Boolean,kotlin.Function0,kotlin.Function0,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Function0,kotlin.Boolean,androidx.compose.material3.NavigationBarItemColors,androidx.compose.foundation.interaction.MutableInteractionSource)) composables to\nimplement destination switching logic. Each `NavigationBarItem` represents a\nsingular destination.\n\n`NavigationBarItem` includes the following key parameters:\n\n- `selected`: Determines whether the current item is visually highlighted.\n- `onClick()`: A required lambda function that defines the action to be performed when the user clicks on the item. This is where you typically handle navigation events, update the selected item state, or load corresponding content.\n- `label`: Displays text within the item. Optional.\n- `icon`: Displays an icon within the item. Optional.\n\nExample: Bottom navigation bar\n\nThe following snippet implements a bottom navigation bar with items so users can\nnavigate between different screens in an app:\n| **Note:** The [full source code](https://github.com/android/snippets/blob/main/compose/snippets/src/main/java/com/example/compose/snippets/components/Navigation.kt) includes the code that establishes the basic navigation structure for the following example.\n\n\n```kotlin\n@Composable\nfun NavigationBarExample(modifier: Modifier = Modifier) {\n val navController = rememberNavController()\n val startDestination = Destination.SONGS\n var selectedDestination by rememberSaveable { mutableIntStateOf(startDestination.ordinal) }\n\n Scaffold(\n modifier = modifier,\n bottomBar = {\n NavigationBar(windowInsets = NavigationBarDefaults.windowInsets) {\n Destination.entries.forEachIndexed { index, destination -\u003e\n NavigationBarItem(\n selected = selectedDestination == index,\n onClick = {\n navController.navigate(route = destination.route)\n selectedDestination = index\n },\n icon = {\n Icon(\n destination.icon,\n contentDescription = destination.contentDescription\n )\n },\n label = { Text(destination.label) }\n )\n }\n }\n }\n ) { contentPadding -\u003e\n AppNavHost(navController, startDestination, modifier = Modifier.padding(contentPadding))\n }\n}https://github.com/android/snippets/blob/5673ffc60b614daf028ee936227128eb8c4f9781/compose/snippets/src/main/java/com/example/compose/snippets/components/Navigation.kt#L117-L148\n```\n\n\u003cbr /\u003e\n\nKey points\n\n- `NavigationBar` displays a collection of items, with each item corresponding to a `Destination`.\n- `val navController = rememberNavController()` creates and remembers an instance of [`NavHostController`](/reference/androidx/navigation/NavHostController), which manages the navigation within a [`NavHost`](/reference/androidx/navigation/NavHost).\n- `var selectedDestination by rememberSaveable {\n mutableIntStateOf(startDestination.ordinal)` } manages the state of the currently selected item.\n- `var selectedDestination by rememberSaveable {\n mutableIntStateOf(startDestination.ordinal) }` manages the state of the currently selected item.\n - `startDestination.ordinal` gets the numerical index (position) of the `Destination.SONGS` enum entry.\n- When an item is clicked, `navController.navigate(route = destination.route)` is called to navigate to the corresponding screen.\n- The `onClick` lambda of the `NavigationBarItem` updates the `selectedDestination` state to visually highlight the clicked item.\n- It calls the `AppNavHost` composable, passing the `navController` and `startDestination`, to display the actual content of the selected screen.\n\nResult\n\nThe following image shows the navigation bar resulting from the previous\nsnippet:\n**Figure 2.** A navigation bar that contains 3 destinations with associated icons: Songs, Album, and Playlist.\n\nAdditional resources\n\n- [Material 3 - Navigation Bar](https://m3.material.io/components/navigation-bar/overview)\n- [Navigation with Compose](/develop/ui/compose/navigation)"]]