בקר הניווט הוא אחד מהמושגים המרכזיים בניווט. הוא מכילה את תרשים הניווט ומציגה שיטות שמאפשרות לאפליקציה לנוע בין היעדים בתרשים.
כשמשתמשים ברכיב הניווט, יוצרים בקר ניווט
באמצעות הכיתה NavController
. החלק המרכזי הוא NavController
API לניווט. הוא עוקב אחר היעדים שהמשתמש ביקר בהם, ומאפשר
שהמשתמש יעבור בין היעדים. במדריך הזה נדגים איך ליצור
NavController
באפליקציה שלך.
לקבלת מידע על הוספת תרשים ניווט ל-NavController
, ראו:
לעצב את תרשים הניווט. NavController
מספק כמה דרכים שונות
כדי לנווט אל היעדים בתרשים. מידע נוסף זמין במאמר ניווט
היעד.
פיתוח נייטיב
כדי ליצור NavController
כשמשתמשים ב-Jetpack פיתוח נייטיב, צריך להתקשר
rememberNavController()
:
val navController = rememberNavController()
צריך ליצור את הגובה של NavController
בהיררכיה של התוכן הקומפוזבילי. הוא
הוא צריך להיות גבוה מספיק כדי שכל התכנים הקומפוזביליים שצריכים להפנות אליו יוכלו
לעשות זאת.
כך תוכלו להשתמש ב-NavController
כמקור מהימן אחד
מעדכנים תכנים קומפוזביליים מחוץ למסכים. זה תואם לעקרונות של
סטטוס [state hoisting].
צפיות
אם אתם משתמשים ב-framework של ממשק המשתמש של Views, אתם יכולים לאחזר את NavController באחת מהשיטות הבאות, בהתאם להקשר:
קוטלין:
Java:
NavHostFragment.findNavController(Fragment)
Navigation.findNavController(Activity, @IdRes int viewId)
Navigation.findNavController(View)
בדרך כלל, קודם מקבלים NavHostFragment
, ואז מאחזרים את
NavController
מהמקטע. קטע הקוד הבא מדגים את זה:
Kotlin
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
Java
NavHostFragment navHostFragment =
(NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
NavController navController = navHostFragment.getNavController();
קריאה נוספת
- עיצוב תרשים הניווט: מדריך המפרט איך להוסיף תרשים
אל
NavController
שמכיל את כל היעדים באפליקציה. - ניווט ליעד: מדריך שמפרט איך להשתמש
NavController
כדי לעבור בין יעדים בתרשים הניווט.