כישורים ב-Android
הצגה ב-GitHubJetpack Navigation 3
android skills add navigation-3Navigation 3 היא ספריית ניווט חדשה שנועדה לעבוד עם Compose. בספרייה Navigation 3 יש לכם שליטה מלאה על מקבץ פעילויות קודמות (back stack), ואתם יכולים לנווט ליעדים וממנה על ידי הוספה והסרה של פריטים מרשימה. הוא יוצר מערכת ניווט גמישה באפליקציה באמצעות:
- מוסכמות למידול של מקבץ פעילויות קודמות (back stack), שבה כל רשומה במקבץ הפעילויות הקודמות מייצגת תוכן שהמשתמש עבר אליו
- ממשק משתמש שמתעדכן אוטומטית עם שינויים במקבץ הפעילויות הקודמות (back stack) (כולל אנימציות)
- היקף לפריטים במחסנית החזרה, שמאפשר לשמור את המצב בזמן שפריט נמצא במחסנית החזרה
- מערכת פריסות דינמיות שמאפשרת להציג כמה יעדים בו-זמנית, ולעבור בין הפריסות בצורה חלקה
- מנגנון שמאפשר לתוכן לתקשר עם פריסת האב שלו (מטא-נתונים)
באופן כללי, יש שתי דרכים להטמיע את Navigation 3:
- מגדירים את התוכן שהמשתמשים יכולים לנווט אליו באפליקציה, כל אחד עם מפתח ייחודי, ומוסיפים פונקציה לפתרון המפתח לתוכן. תוכלו לקרוא מידע נוסף במאמר בנושא פתרון בעיות שקשורות למפתחות לגישה לתוכן.
- יוצרים מקבץ פעילויות קודמות (back stack) שאליה מפתחות נדחפים ומוסרים ממנה כשהמשתמשים עוברים בין מסכים באפליקציה. מידע נוסף על יצירת מקבץ פעילויות קודמות (back stack)
- אפשר להשתמש ב-
NavDisplayכדי להציג את מקבץ הפעילויות הקודמות (back stack) של האפליקציה. בכל פעם שמשתנה מחסנית החזרה, הממשק מתעדכן ומציג תוכן רלוונטי. מידע נוסף מופיע במאמר הצגת מקבץ פעילויות קודמות (back stack). - לשנות את אסטרטגיות הסצנה של
NavDisplayלפי הצורך כדי לתמוך בפריסות אדפטיביות ובפלטפורמות שונות. - תמיכה בקישורי עומק לניווט ישירות ליעדים.
אפשר לראות את קוד המקור המלא של Navigation 3 ב-AOSP.
שיפורים ב-Jetpack Navigation
Navigation 3 משפר את Jetpack Navigation API המקורי בדרכים הבאות:
- שילוב פשוט יותר עם Compose
- שליטה מלאה במקבץ פעילויות קודמות (back stack)
- היא מאפשרת ליצור פריסות שיכולות לקרוא יותר מיעד אחד ממחסנית החזרה בו-זמנית, וכך להתאים את עצמן לשינויים בגודל החלון ובקלט אחר.
מידע נוסף על העקרונות של Navigation 3 ועל הבחירות בעיצוב ה-API זמין בפוסט בבלוג בנושא ההשקה.
דוגמאות קוד
מאגר המתכונים מכיל דוגמאות לשימוש באבני הבניין של Navigation 3 כדי לפתור אתגרים נפוצים בניווט.