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

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

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

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

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

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

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

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

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

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

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

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

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

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