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