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