שיטות מומלצות לאינטראקציה עם מפת הניווט

בדף הזה מוסברות שיטות מומלצות לאינטראקציה עם מפת הניווט באפליקציה.

אם אפשר, השתמשו ב-SupportNavigationFragment במקום ב-NavigationView

SupportNavigationFragment הוא wrapper שנועד לטפל בנוחות ב-callbacks של מחזור החיים של NavigationView, כך שלא צריך לנהל את ה-callbacks האלה בעצמכם. השיטה הזו פחות חשופה לשגיאות, והיא הדרך המומלצת להשתמש ב-Navigation באפליקציה. כשמשתמשים ב-SupportNavigationFragment, חשוב לא להפעיל את אירועי מחזור החיים של NavigationView.

אם משתמשים ב-NavigationView, צריך להקפיד על סדר קפדני כשמפעילים שיטות של מחזור חיים

NavigationView מארח את מפת הניווט ועוקב אחרי אירועי מחזור החיים כמו פעילויות ומקטעים (fragments) ב-Android, ומבצע פעולות ספציפיות כשאירועי מחזור החיים האלה מופעלים. ‫NavigationView מבצע כמה אתחולים ב-NavigationView#onCreate וב-NavigationView#onStart, וניקויים ב-NavigationView#onStop וב-NavigationView#onDestroy, וגם כשמעבדים אירועים אחרים במחזור החיים.

לשיטות של מחזור החיים של NavigationView יש את אותה משמעות כמו ב-Android activities או ב-fragments. לדוגמה, onCreate() של NavigationView מתורגם בערך ל-‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ הקריאות החוזרות (callback) של מחזור החיים של NavigationView מבוססות על הקריאות החוזרות של מחזור החיים של Android ומופעלות באותו סדר, ולכן נדרש סדר חזק של השיטות האלה של NavigationView. אחרת, יכול להיות שתיתקלו בדליפות זיכרון, בשגיאות בממשק המשתמש, בבעיות בעדכון המיקום ובבעיות אחרות.

מידע נוסף על מחזור החיים של פעילות ב-Android זמין בקטע מושגים שקשורים למחזור החיים של פעילות במאמרי העזרה למפתחים של Android.

בטבלה הבאה מוצגות הפעולות שצריך לבצע במתודות אחרות של מחזור החיים, אחרי מתודות ספציפיות של מחזור החיים:

שיטה של מחזור החיים מופעל במקום במחזור החיים של הפעילות מופעל אחרי איזו שיטה במחזור החיים
onConfigurationChanged() מופעל כשהממשק נמצא בחזית וההגדרה משתנה. תמיד אחרי onStart()
onTrimMemory() מופעל כשפעילות מתבצעת ברקע. תמיד אחרי onPause()
onSaveInstance() הפעולה מופעלת לפני שהפעילות מושמדת. תמיד אחרי onStop()

אל תקראו לשיטות האלה של מחזור החיים כמה פעמים בלי לקרוא קודם לשיטת הסגירה המתאימה. בנוסף, חשוב לזכור שאם חלק מהקריאות החוזרות (callbacks) של מחזור החיים של Android מנוהלות על ידי האפליקציה עצמה, ו-NavigationView מתווסף לקטע אחרי היצירה או ההתחלה, האפליקציה צריכה לקרוא לשיטות הספציפיות בעצמה בסדר הנכון כדי לאתחל את Navigation SDK בצורה נכונה.

הנחיות נוספות לשימוש בשיטות האלה מפורטות באפליקציית ההדגמה של Navigation SDK.

אם משתמשים ב-NavigationView, מפעילים אירועים במחזור החיים מהפעילות או מהקטע, ולא משניהם

כדי לשמור על הסדר הקפדני של ה-methods במחזור החיים, צריך להפעיל את האירועים האלה מתוך הקריאות החוזרות (callbacks) של מחזור החיים של הפעילות או של ה-fragment, שמקבלות את האירועים האלה לפי הסדר. הגישה הזו מבטיחה שלא יהיה צורך בתיאום בין פרגמנטים ופעילויות באפליקציות, ושלא יתבצעו קריאות כפולות.