התכונות "חיזוי החזרה" ו"אנימציות מערכת" מופעלות כברירת מחדל. אם האפליקציה מיירטת את אירוע החזרה ולא עברתם לחיזוי החזרה, עדכנו את האפליקציה כך שתשתמש בממשקי API נתמכים לניווט לאחור.
הפעלת אנימציות המערכת שמוגדרות כברירת מחדל
אנימציות המערכת של חזרה למסך הבית, מעבר בין פעילויות ומעבר בין משימות זמינות במכשירים עם Android מגרסה 15 ואילך, באפליקציות שהועברו לממשקי ה-API הנתמכים לטיפול בתנועת החזרה.
- חזרה למסך הבית: המשתמש מועבר חזרה למסך הבית.
- בין פעילויות: מעברים בין פעילויות בתוך האפליקציה.
- מעבר בין משימות: מעברים בין משימות.
האנימציות האלה מופעלות כברירת מחדל ב-Android מגרסה 15 ואילך. במכשירים עם Android בגרסה 13 או 14, המשתמשים יכולים להפעיל אותם דרך אפשרויות למפתחים.
כדי להשתמש באנימציות של המערכת, צריך לעדכן את יחסי התלות של AndroidX Activity לגרסה 1.6.0 ואילך.
הפעלת חיזוי החזרה באמצעות Navigation Compose
כדי להשתמש בחיזוי החזרה ב-Navigation Compose, צריך להשתמש בספרייה navigation-compose 2.8.0 או בגרסה חדשה יותר.
כשמשתמשים ב-Navigation Compose, המעבר בין המסכים מתבצע אוטומטית באמצעות הדרגה (cross-fade) כשהמשתמש מחליק אחורה:
כשמנווטים, אפשר ליצור מעברים בהתאמה אישית באמצעות popEnterTransition ו-popExitTransition. כשמחילים את המשתנים האלה על NavHost, הם מאפשרים להגדיר את האנימציה של מסכי הכניסה והיציאה. אפשר להשתמש בהם כדי ליצור מגוון אפקטים, כמו שינוי קנה מידה, הדרגה או החלקה.
בדוגמה הזו, scaleOut משמש בתוך popExitTransition כדי להקטין את המסך שיוצאים ממנו כשהמשתמש מנווט אחורה. בנוסף, הפרמטר transformOrigin קובע את הנקודה שסביבה מתרחשת האנימציה של שינוי קנה המידה. כברירת מחדל, זהו מרכז המסך (0.5f, 0.5f).
אפשר לשנות את הערך הזה כדי שהשינוי בגודל יתחיל מנקודה אחרת.
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
הקוד הזה מניב את התוצאה הבאה:
popEnterTransition ו-popExitTransition שולטים ספציפית באנימציות כשמבצעים פעולת פופ במקבץ הפעילויות הקודמות (back stack), למשל באמצעות תנועת חזרה. אתם יכולים גם להשתמש ב-enterTransition וב-exitTransition כדי להגדיר אנימציות לכניסה וליציאה מרכיבים קומפוזביליים באופן כללי, לא רק לחיזוי החזרה. אם מגדירים רק את enterTransition ו-exitTransition, הם משמשים גם לניווט רגיל וגם להקפצת מקבץ הפעילויות הקודמות (back stack). עם זאת, באמצעות popEnterTransition ו-popExitTransition אפשר ליצור אנימציות שונות לניווט לאחור.
שילוב עם מעברים של רכיבים משותפים
מעברים בין רכיבים משותפים מספקים חיבור חזותי חלק בין רכיבים קומפוזביליים עם תוכן משותף, שלרוב משמשים לניווט.
כדי להשתמש ברכיבים משותפים עם Navigation Compose, עיינו במאמר חיזוי החזרה עם רכיבים משותפים.
תמיכה בחיזוי החזרה עם רכיבי Material Compose
הרבה רכיבים בספריית Material Compose מיועדים לפעול בצורה חלקה עם חיזוי תנועת החזרה. כדי להפעיל אנימציות של חיזוי החזרה ברכיבים האלה, צריך לכלול בפרויקט את יחסי התלות העדכניים של Material3 (androidx.compose.material3:material3-*:1.3.0 ואילך).
רכיבי Material שתומכים באנימציות של חיזוי החזרה כוללים:
SearchBarModalBottomSheetModalDrawerSheet/DismissibleDrawerSheetModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar ו-ModalBottomSheet מונפשים באופן אוטומטי עם חיזוי תנועת החזרה. ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheet ו-DismissibleNavigationDrawer דורשים להעביר את drawerState לפונקציות ה-composable המתאימות של תוכן הגיליון.
בדיקת האנימציה של חיזוי תנועת החזרה
אם אתם עדיין משתמשים ב-Android מגרסה 13 או 14, אתם יכולים לבדוק את האנימציה של החזרה למסך הבית.
כדי לבדוק את האנימציה הזו, מבצעים את השלבים הבאים:
- במכשיר, עוברים אל הגדרות > מערכת > אפשרויות למפתחים.
- בוחרים באפשרות אנימציות של חיזוי החזרה.
- מפעילים את האפליקציה המעודכנת ומשתמשים בתנועת החזרה כדי לראות אותה בפעולה.
במכשירים עם Android מגרסה 15 ואילך, התכונה הזו מופעלת כברירת מחדל.