Следующая диаграмма поможет вам решить, какой API использовать для реализации вашей анимации.
Чтобы выбрать наиболее подходящий Animation API для вашего случая, используйте следующее дерево решений:
- Ваша анимация основана на графике (например, SVG или изображениях)?
- Да: используются ли простые SVG (например, значок с микроанимацией)?
- Да:
AnimatedVectorDrawable. - Нет: сторонний фреймворк для анимации, например
Lottie.
- Да:
- Нет. Нужно ли, чтобы анимация повторялась бесконечно?
- Да:
rememberInfiniteTransition. - Нет. Вы анимируете макет?
- Да. Вы переключаетесь между composable-функциями с разным контентом?
- Да: вы используете 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. - Нет: не нашли ответ? Запросить добавление функции
- Да:
- Да:
- Да:
- Да. Ресурсы полностью независимы друг от друга?
- Да. Вы переключаетесь между composable-функциями с разным контентом?
- Да:
- Да: используются ли простые SVG (например, значок с микроанимацией)?
Скачайте PDF-версию диаграммы.