התרשים הבא יעזור לכם להחליט באיזה API להשתמש כדי להטמיע את האנימציה.
אתם יכולים להיעזר בעץ ההחלטות שכאן כדי לבחור את ה-Animation API שמתאים לתרחיש השימוש שלכם:
- האם האנימציה מבוססת על אומנות (כלומר, קובצי SVG או תמונות)?
- כן: האם הוא משתמש בקובצי SVG פשוטים (כלומר, סמל עם אנימציות קטנות)?
- כן:
AnimatedVectorDrawable. - לא: מסגרת אנימציה של צד שלישי, לדוגמה,
Lottie.
- כן:
- לא: האם האנימציה צריכה לחזור על עצמה בלי הפסקה?
- כן:
rememberInfiniteTransition. - לא: האם אתם מוסיפים אנימציה לפריסה?
- כן: האם אתם עוברים בין רכיבים קומפוזביליים עם תוכן שונה?
- כן: האם אתם משתמשים ב-Navigation-Compose?
- כן:
composable()עם הגדרות שלenterTransitionו-exitTransition. - לא:
AnimatedContent,CrossfadeאוPager.
- כן:
- לא: האם אתם מוסיפים אנימציה להופעה או להיעלמות של תוכן?
- כן:
AnimatedVisibilityאוanimateFloatAsStateעםModifier.alpha(). - לא: האם אתם יוצרים אנימציה של שינוי גודל?
- כן:
Modifier.animateContentSize. - לא: האם אתם מוסיפים אנימציה למאפיין פריסה אחר (לדוגמה, היסט או מרווח פנימי)?
- כן: עיינו בקטע "האם הנכסים בלתי תלויים לחלוטין זה בזה?".
- לא: האם אתם מוסיפים אנימציה לפריטים ברשימה?
- כן:
animateItem().
- כן:
- כן:
- כן:
- כן: האם אתם משתמשים ב-Navigation-Compose?
- לא: האם אתם מוסיפים אנימציה לכמה מאפיינים?
- כן: האם הנכסים בלתי תלויים לחלוטין זה בזה?
- כן:
animate*AsState. לשליחת הודעת טקסט, משתמשים בסמלTextMotion.Animated. - לא: האם הם צריכים להתחיל באותו זמן?
- כן:
updateTransitionעםAnimatedVisibility,animateFloat,animateIntוכו'. - לא:
AnimatableעםanimateTo, שמופעלת בתזמונים שונים באמצעות פונקציות השעיה.
- כן:
- כן:
- לא: האם לאנימציה יש ערכי יעד מוגדרים מראש?
- כן:
animate*AsState. לטקסט, צריך להשתמש ב-TextMotion.Animated. - לא: האם האנימציה מופעלת באמצעות תנועה והיא המקור הקובע?
- כן:
AnimatableעםanimateTo/snapTo. - לא: האם זו אנימציה חד-פעמית בלי ניהול מצב?
- כן:
AnimationStateאוanimate. - לא: התשובה לא כאן? הגשת בקשה להוספת תכונה.
- כן:
- כן:
- כן:
- כן: האם הנכסים בלתי תלויים לחלוטין זה בזה?
- כן: האם אתם עוברים בין רכיבים קומפוזביליים עם תוכן שונה?
- כן:
- כן: האם הוא משתמש בקובצי SVG פשוטים (כלומר, סמל עם אנימציות קטנות)?