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

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

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

SupportNavigationFragment הוא wrapper לנוחיותכם בטיפול בקריאות חוזרות (callback) במחזור החיים של 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 ומפעילים אותן באותו סדר כמו הקריאות החוזרות למחזור החיים של Android, יש צורך בסדר טוב של השיטות האלה לניווט. אחרת, יכול להיות שתבחינו בדליפות זיכרון, בשגיאות בממשק המשתמש, במיקום שלא מתעדכן ובבעיות אחרות.

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

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

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

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

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

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

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