התכונות 'חיזוי של תנועת החזרה' ו'אנימציות מערכת' מופעלות כברירת מחדל. אם האפליקציה שלכם מנתבת את האירוע 'חזרה' ואתם לא עברתם לשימוש בחזרה חזוי, עליכם לעדכן את האפליקציה כך שתשתמש ב-API נתמכים לניווט לאחור.
הפעלת אנימציות מערכת שמוגדרות כברירת מחדל
אנימציות המערכת של חזרה למסך הבית, של תנועה בין פעילויות ושל תנועה בין משימות זמינות במכשירים עם Android מגרסה 15 ואילך, באפליקציות שהועברו לממשקי ה-API הנתמכים לטיפול בלחצן החזרה.
- חזרה למסך הבית: החזרת המשתמש למסך הבית.
- בין פעילויות: מעברים בין פעילויות בתוך האפליקציה.
- בין משימות: מעברים בין משימות.
האנימציות האלה מופעלות כברירת מחדל ב-Android מגרסה 15 ואילך. במכשירים עם Android בגרסה 13 או 14, המשתמשים יכולים להפעיל אותם דרך האפשרויות למפתחים.
כדי לקבל את האנימציות של המערכת, צריך לעדכן את יחסי התלות של AndroidX ב-Activity
לגרסה 1.6.0 ואילך.
הפעלת חזרה חזוי באמצעות 'ניווט לכתיבה'
כדי להשתמש בתכונה 'חזרה חזותית' בתכונה 'ניווט בכתיבה', צריך לוודא שאתם משתמשים בספרייה navigation-compose
בגרסה 2.8.0 ואילך.
כשמשתמשים מחליקים חזרה, נעשה מעבר אוטומטי בין המסכים בתפריט הניווט:
כשמנווטים, אפשר ליצור מעברים מותאמים אישית באמצעות 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
שולטים באנימציות באופן ספציפי כשפותחים את מקבץ האפליקציות הקודם, למשל באמצעות תנועה אחורה. אפשר גם להשתמש ב-enterTransition
וב-exitTransition
כדי להגדיר אנימציות לכניסה וליציאה מרכיבים מורכבים באופן כללי, ולא רק לחזור חזרה חזוי. אם מגדירים רק את enterTransition
ו-exitTransition
, הם משמשים גם לניווט רגיל וגם להוצאה של סטאק הקודמים. עם זאת, השימוש ב-popEnterTransition
וב-popExitTransition
מאפשר ליצור אנימציות נפרדות לניווט לאחור.
שילוב עם מעברים של רכיבים משותפים
מעברים בין רכיבים משותפים מספקים חיבור חזותי חלק בין רכיבים מורכבים עם תוכן משותף, ולרוב משמשים לניווט.
במאמר חזרה חזויה עם רכיבים משותפים מוסבר איך משתמשים ברכיבים משותפים עם 'ניווט לכתיבה'.
תמיכה בחזרה חזותית חזוי באמצעות רכיבים של Material Compose
רכיבים רבים בספריית Material Compose תוכננו לפעול בצורה חלקה עם תנועות חזרה חזויות. כדי להפעיל אנימציות חזרה חזויות ברכיבים האלה, צריך לכלול בפרויקט את התלות האחרונה ב-Material3 (androidx.compose.material3:material3-*:1.3.0
ואילך).
רכיבי Material שתומכים בחיזוי אנימציה של תנועת החזרה הם:
SearchBar
ModalBottomSheet
ModalDrawerSheet/DismissibleDrawerSheet
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar
ו-ModalBottomSheet
מקבלים אנימציה אוטומטית באמצעות תנועות חיזוי של חזרה אחורה. כדי להשתמש ב-ModalNavigationDrawer
, ב-ModalDrawerSheet
, ב-DismissibleDrawerSheet
וב-DismissibleNavigationDrawer
, צריך להעביר את drawerState
ל-composables של תוכן הגיליונות הרלוונטיים.
בדיקת אנימציית התנועה לחזרה אחורה
אם אתם עדיין משתמשים ב-Android 13 או ב-Android 14, תוכלו לבדוק את האנימציה של החזרה למסך הבית.
כדי לבדוק את האנימציה הזו, מבצעים את השלבים הבאים:
- במכשיר, עוברים אל הגדרות > מערכת > אפשרויות למפתחים.
- בוחרים באפשרות אנימציה חזרה חזוי.
- פותחים את האפליקציה המעודכנת ומשתמשים בתנועת החזרה לאחור כדי לראות איך היא פועלת.
במכשירים עם Android מגרסה 15 ואילך, התכונה הזו מופעלת כברירת מחדל.