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

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

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

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

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

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

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

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

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

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

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

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

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

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