ניווט 3

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

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

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

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

אפשר לראות את קוד המקור המלא של Navigation 3 ב-AOSP.

שיפורים ב-Jetpack Navigation

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

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

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

דוגמאות קוד

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