Выберите API анимации

Диаграмма ниже поможет вам решить, какой API использовать для реализации анимации.

Блок-схема, описывающая дерево решений для выбора подходящего API анимации

Рисунок 1. Дерево решений, описывающее, как выбрать подходящий API анимации.

Следуйте приведенным ниже вопросам дерева решений, чтобы выбрать, какой API анимации наиболее подходит для вашего варианта использования:

  • Моя анимация больше похожа на искусство, состоящее из множества визуальных элементов? т. е. SVG или изображения
    • Да: есть ли в нем простые SVG? то есть значок с микроанимацией
    • Нет: Нужно ли повторять это вечно?
      • Да: rememberInfiniteTransition
      • Нет: это анимация макета?
        • Да: Переключение между несколькими составными объектами с разным содержанием?
          • Да: С навигацией-созданием?
          • Нет: Анимация появления/исчезновения?
            • Да: AnimatedVisibility или animateFloatAsState с Modifier.alpha()
            • Нет: Размер анимации?
              • Да: Modifier.animateContentSize
              • Нет: Другое свойство макета? т.е. смещение, заполнение и т.д.
                • Да: см. «Являются ли объекты полностью независимыми друг от друга?»
                • Нет: Анимация элементов списка?
        • Нет. Вам нужно анимировать несколько свойств?
          • Да: объекты полностью независимы друг от друга?
            • Да: animate*AsState , для текста используйте TextMotion.Animated
            • Нет: Начать одновременно?
              • Да: Да: updateTransition с AnimatedVisibility , animateFloat , animateInt и т. д.
              • Нет: Animatable с вызовом animateTo с разными таймингами (с использованием функций приостановки)
          • Нет. Имеет ли анимация набор предопределенных целевых значений?
            • Да: animate*AsState , для текста используйте TextMotion.Animated
            • Нет. Анимация, управляемая жестами? Ваша анимация — единственный источник истины?

Загрузите PDF-версию схемы .