ניווט 3

‫Navigation 3 היא ספריית ניווט שמיועדת לעבודה עם Compose. ב-Navigation 3 יש לכם שליטה מלאה על מקבץ הפעילויות הקודמות, ואתם מנווטים בין היעדים על ידי הוספה והסרה של פריטים מהרשימה. היא יוצרת מערכת ניווט גמישה באפליקציה באמצעות:

  • מוסכמות ליצירת מודל של מקבץ פעילויות קודמות (back stack), שבו כל רשומה במקבץ מייצגת תוכן שהמשתמש ניווט אליו
  • ממשק משתמש שמתעדכן אוטומטית עם שינויים במקבץ הפעילויות הקודמות (כולל אנימציות)
  • היקף לפריטים במקבץ הפעילויות הקודמות (back stack), שמאפשר לשמור את המצב בזמן שפריט נמצא במקבץ הפעילויות הקודמות (back stack)
  • מערכת פריסה דינמית שמאפשרת להציג כמה יעדים בו-זמנית, ולעבור בצורה חלקה בין הפריסות האלה
  • מנגנון שמאפשר לתוכן לתקשר עם פריסת האם שלו (מטא-נתונים)
  • תקשורת בין יעדים כדי להחזיר תוצאות בין מסכים

ככלל, אתם יכולים להטמיע את Navigation 3 בדרכים הבאות:

  1. מגדירים את התוכן שהמשתמשים יכולים לנווט אליו באפליקציה, כל אחד עם מפתח ייחודי, ומוסיפים פונקציה כדי לפתור את המפתח הזה לתוכן. איך פותרים בעיות שקשורות למפתחות תוכן
  2. יוצרים מקבץ פעילויות קודמות (back stack) שבו מפתחות נדחפים ומוסרים כשהמשתמשים מנווטים באפליקציה. מידע נוסף זמין במאמר יצירת מקבץ פעילויות קודמות (back stack).
  3. משתמשים ב-NavDisplay כדי להציג את מקבץ הפעילויות הקודמות (back stack) של האפליקציה. בכל פעם שמקבץ הפעילויות הקודמות משתנה, ממשק המשתמש מתעדכן כדי להציג תוכן רלוונטי. הצגת מקבץ הפעילויות הקודמות
  4. משנים את אסטרטגיות הסצנה של NavDisplay לפי הצורך כדי לתמוך בפריסות אדפטיביות ובפלטפורמות שונות.
  5. תמיכה בקישורי עומק כדי לנווט ישירות ליעדים.

קוד המקור המלא של Navigation 3 זמין ב-AOSP.

שיפורים ב-Jetpack Navigation

‫Navigation 3 משפר את Jetpack Navigation API המקורי בדרכים הבאות:

  • שילוב פשוט יותר עם Compose
  • שליטה מלאה במקבץ הפעילויות הקודמות (back stack)
  • מאפשר ליצור פריסות שיכולות לקרוא יותר מיעד אחד ממקבץ הפעילויות הקודמות (back stack) בו-זמנית, כך שהן יכולות להתאים את עצמן לשינויים בגודל החלון ובקלט אחר.

בפוסט בבלוג אפשר לקרוא מידע נוסף על העקרונות של Navigation 3 ועל אפשרויות העיצוב של ה-API.

דוגמאות קוד

מאגר המתכונים מכיל דוגמאות לשימוש באבני הבניין של Navigation 3 כדי לפתור אתגרים נפוצים בניווט.