نمودار زیر به شما کمک می کند تصمیم بگیرید که از چه API برای پیاده سازی انیمیشن خود استفاده کنید.
از درخت تصمیم زیر برای انتخاب مناسب ترین API انیمیشن برای مورد استفاده خود استفاده کنید:
- آیا انیمیشن شما مبتنی بر هنر است (یعنی SVG یا تصاویر)؟
- بله: آیا از SVG های ساده (یعنی یک نماد با انیمیشن های میکرو) استفاده می کند؟
- بله:
AnimatedVectorDrawable
. - خیر: چارچوب انیمیشن شخص ثالث، به عنوان مثال،
Lottie
.
- بله:
- نه: آیا انیمیشن نیاز به تکرار بی نهایت دارد؟
- بله:
rememberInfiniteTransition
. - نه: آیا طرح بندی را متحرک می کنید؟
- بله: آیا بین کامپوزیشنهایی با محتوای متفاوت جابجا میشوید؟
- بله: آیا از Navigation-Compose استفاده می کنید؟
- بله:
composable()
با مجموعهenterTransition
وexitTransition
. - نه:
AnimatedContent
،Crossfade
، یاPager
.
- بله:
- نه: آیا ظاهر یا ناپدید شدن محتوا را متحرک می کنید؟
- بله:
AnimatedVisibility
یاanimateFloatAsState
باModifier.alpha()
. - نه: آیا تغییر اندازه را متحرک می کنید؟
- بله:
Modifier.animateContentSize
. - نه: آیا در حال متحرک سازی ویژگی طرح بندی دیگری هستید (مثلاً افست یا padding)؟
- بله: به «آیا خواص کاملاً مستقل از یکدیگر هستند؟» مراجعه کنید.
- نه: آیا شما آیتم های لیست را متحرک می کنید؟
- بله:
animateItemPlacement()
.
- بله:
- بله:
- بله:
- بله: آیا از Navigation-Compose استفاده می کنید؟
- نه: آیا چندین ویژگی را متحرک می کنید؟
- بله: آیا خواص کاملاً مستقل از یکدیگر هستند؟
- بله:
animate*AsState
. برای متن، ازTextMotion.Animated
استفاده کنید. - نه: آیا آنها باید همزمان شروع کنند؟
- بله:
updateTransition
باAnimatedVisibility
،animateFloat
،animateInt
و غیره. - خیر:
Animatable
باanimateTo
، با زمان بندی های مختلف با استفاده از توابع تعلیق فراخوانی می شود.
- بله:
- بله:
- خیر: آیا انیمیشن دارای مقادیر هدف از پیش تعریف شده است؟
- بله:
animate*AsState
. برای متن، ازTextMotion.Animated
استفاده کنید. - نه: آیا انیمیشن ژست محور است و منبع حقیقت است؟
- بله:
Animatable
باanimateTo
/snapTo
. - نه: آیا این یک انیمیشن تک شات بدون مدیریت دولتی است؟
- بله:
AnimationState
یاanimate
. - نه: اینجا جواب نمیده؟ درخواست ویژگی را ثبت کنید .
- بله:
- بله:
- بله:
- بله: آیا خواص کاملاً مستقل از یکدیگر هستند؟
- بله: آیا بین کامپوزیشنهایی با محتوای متفاوت جابجا میشوید؟
- بله:
- بله: آیا از SVG های ساده (یعنی یک نماد با انیمیشن های میکرو) استفاده می کند؟
نسخه PDF نمودار را دانلود کنید.