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