הגדרת 'חיזוי החזרה'

התכונות 'חיזוי החזרה' ו'אנימציות מערכת' מופעלות כברירת מחדל. אם האפליקציה שלכם מיירטת את אירוע החזרה ולא ביצעתם מעבר לניווט חזוי אחורה, עליכם לעדכן את האפליקציה כדי להשתמש בממשקי API נתמכים לניווט אחורה.

האנימציה החזויה של החזרה למסך הבית.
האנימציה החוזה את הפעולה הבאה.
האנימציה החוזה את המעבר בין המשימות.

הפעלת אנימציות מערכת שמוגדרות כברירת מחדל

אנימציות המערכת של חזרה למסך הבית, מעבר בין פעילויות ומעבר בין משימות זמינות במכשירים עם Android 15 ואילך באפליקציות שעברו ל-APIs הנתמכים לטיפול בחזרה.

  • חזרה למסך הבית: מחזיר את המשתמש למסך הבית.
  • פעילות חוצת-פעילויות: מעברים בין פעילויות באפליקציה.
  • בין משימות: מעברים בין משימות.

האנימציות האלה מופעלות כברירת מחדל ב-Android מגרסה 15 ואילך. במכשירים עם Android 13 או Android 14, המשתמשים יכולים להפעיל אותם דרך האפשרויות למפתחים.

כדי לקבל את האנימציות של המערכת, צריך לעדכן את התלות ב-AndroidX Activity לגרסה 1.6.0 ואילך.

הפעלת חיזוי החזרה באמצעות Navigation Compose

כדי להשתמש בתכונה 'חזרה חזויה' ב-Navigation Compose, צריך לוודא שאתם משתמשים בספרייה navigation-compose 2.8.0 ואילך.

‫Navigation Compose מבצע באופן אוטומטי מעבר הדרגתי בין מסכים כשהמשתמש מחליק אחורה:

איור 2. אנימציית ברירת המחדל של מעבר הדרגתי באפליקציית SociaLite.

כשמנווטים, אפשר ליצור מעברים בהתאמה אישית באמצעות התגים 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,
)

הקוד הזה יוצר את התוצאה הבאה:

איור 3. אנימציה מותאמת אישית באפליקציה SociaLite.

המאפיינים popEnterTransition ו-popExitTransition שולטים באנימציות באופן ספציפי כשמבצעים פעולת חזרה (pop) במקבץ פעילויות קודמות (back stack), למשל באמצעות תנועת חזרה. אפשר גם להשתמש ב-enterTransition וב-exitTransition כדי להגדיר אנימציות לכניסה וליציאה של רכיבי composable באופן כללי, ולא רק עבור חיזוי החזרה. אם מגדירים רק את enterTransition ואת exitTransition, הם ישמשו גם לניווט רגיל וגם להוצאת פריטים ממקבץ הפעילויות הקודמות (back stack). עם זאת, באמצעות popEnterTransition ו-popExitTransition אפשר ליצור אנימציות שונות לניווט אחורה.

שילוב עם מעברים של רכיבים משותפים

מעברים של רכיבים משותפים מספקים חיבור ויזואלי חלק בין קומפוזיציות עם תוכן משותף, ומשמשים לעיתים קרובות לניווט.

איור 4. מעבר בין רכיבים משותפים עם חזרה ניבויית ב-Navigation Compose.

כדי להשתמש ברכיבים משותפים עם Navigation Compose, אפשר לעיין במאמר בנושא חיזוי החזרה עם רכיבים משותפים.

תמיכה בחיזוי החזרה באמצעות רכיבי Material Compose

רכיבים רבים בספריית Material Compose מתוכננים לפעול בצורה חלקה עם תנועות ניווט חזויות. כדי להפעיל אנימציות של חזרה עם חיזוי ברכיבים האלה, צריך לכלול בפרויקט את התלות העדכנית ב-Material3 (גרסה androidx.compose.material3:material3-*:1.3.0 ואילך).

רכיבי Material שתומכים באנימציות של חיזוי החזרה כוללים:

SearchBar ו-ModalBottomSheet מונפשים אוטומטית באמצעות חיזוי תנועות החזרה. כדי להשתמש ב-ModalNavigationDrawer,‏ ModalDrawerSheet, ‏ DismissibleDrawerSheet ו-DismissibleNavigationDrawer, צריך להעביר את drawerState לרכיבי ה-Composable של תוכן הגיליון המתאימים.

בדיקת האנימציה של חיזוי תנועת החזרה

אם אתם עדיין משתמשים ב-Android 13 או ב-Android 14, אתם יכולים לבדוק את האנימציה של החזרה למסך הבית.

כדי לבדוק את האנימציה הזו, מבצעים את השלבים הבאים:

  1. במכשיר, עוברים אל הגדרות > מערכת > אפשרויות למפתחים.
  2. בוחרים באפשרות חיזוי החזרה אנימציות.
  3. מפעילים את האפליקציה המעודכנת ומשתמשים בתנועת החזרה כדי לראות אותה בפעולה.

ב-Android מגרסה 15 ואילך, התכונה הזו מופעלת כברירת מחדל.

מקורות מידע נוספים