Следующая диаграмма поможет вам решить, какой 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-версию схемы .