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