בחירת API לאנימציה

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

תרשים זרימה שמתאר את עץ ההחלטות לבחירת ה-Animation API המתאים
איור 1. תרשים של עץ החלטות שמתאר איך לבחור את ה-Animation API המתאים.

תרשים זרימה שמתאר את עץ ההחלטות לבחירת ה-Animation API המתאים

אתם יכולים להיעזר בעץ ההחלטות שכאן כדי לבחור את ה-Animation API שמתאים לתרחיש השימוש שלכם:

  • האם האנימציה מבוססת על אומנות (כלומר, קובצי SVG או תמונות)?
    • כן: האם הוא משתמש בקובצי SVG פשוטים (כלומר, סמל עם אנימציות קטנות)?
    • לא: האם האנימציה צריכה לחזור על עצמה בלי הפסקה?
      • כן: rememberInfiniteTransition.
      • לא: האם אתם מוסיפים אנימציה לפריסה?
        • כן: האם אתם עוברים בין רכיבים קומפוזביליים עם תוכן שונה?
          • כן: האם אתם משתמשים ב-Navigation-Compose?
          • לא: האם אתם מוסיפים אנימציה להופעה או להיעלמות של תוכן?
            • כן: AnimatedVisibility או animateFloatAsState עם Modifier.alpha().
            • לא: האם אתם יוצרים אנימציה של שינוי גודל?
              • כן: Modifier.animateContentSize.
              • לא: האם אתם מוסיפים אנימציה למאפיין פריסה אחר (לדוגמה, היסט או מרווח פנימי)?
                • כן: עיינו בקטע "האם הנכסים בלתי תלויים לחלוטין זה בזה?".
                • לא: האם אתם מוסיפים אנימציה לפריטים ברשימה?
        • לא: האם אתם מוסיפים אנימציה לכמה מאפיינים?
          • כן: האם הנכסים בלתי תלויים לחלוטין זה בזה?
            • כן: animate*AsState. לשליחת הודעת טקסט, משתמשים בסמל TextMotion.Animated.
            • לא: האם הם צריכים להתחיל באותו זמן?
              • כן: updateTransition עם AnimatedVisibility,‏ animateFloat,‏ animateInt וכו'.
              • לא: Animatable עם animateTo, שמופעלת בתזמונים שונים באמצעות פונקציות השעיה.
          • לא: האם לאנימציה יש ערכי יעד מוגדרים מראש?
            • כן: animate*AsState. לטקסט, צריך להשתמש ב-TextMotion.Animated.
            • לא: האם האנימציה מופעלת באמצעות תנועה והיא המקור הקובע?

הורדת גרסת PDF של התרשים