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