Переходы между макетами¶
Эта страница была перенесена из старой версии документации.
В процессе переписывания документации некоторые страницы могут быть немного устаревшими.
В документе рассказывается о том, как можно анимировать все изменения макета для конкретного представления, просто добавив к нему одно свойство.
Точнее, как анимировать позиции и размеры компонентов. Важно, что все это будет происходить полностью в потоке UI без какой-либо связи через мост. Существует множество способов анимации изменения макета, но в отличие от анимации входа и выхода они не так регулярны. Мы подготовили несколько предопределенных переходов макета, однако если вы хотите создать более сложный и индивидуальный переход, вы можете создать свой собственный.
Как использовать предопределенные переходы макета?¶
1. Импортируйте выбранный переход¶
1 2 3 | |
2. Выберите Animated Component (Анимированный компонент), какой макет вы хотите анимировать¶
1 2 3 | |
3. Настройка анимации¶
Различные типы переходов макета могут быть настроены по-разному. Полный список возможностей приведен в параграфе, посвященном конкретному типу анимации.
1 | |
Предопределенные переходы¶
Ниже мы перечислили все имеющиеся на данный момент предопределенные переходы макета. Каждый переход содержит все его модификаторы и видеоролик, демонстрирующий, как он выглядит при применении к сетке водопада.
Если вы не нашли подходящего перехода, то можете создать собственный. Если вы считаете, что анимация должна быть здесь, пожалуйста, откройте проблему или создайте запрос на исправление.
Макет¶
Линейный переход, одинаково анимирует и положение, и размеры.
Модификаторы:
duration(в мс) по умолчанию: 300delay(в мс) по умолчанию: 0easing- тот же рабочий элемент easing, что и вwithTiming.springifyизменить анимацию на пружиннуюdampingпо умолчанию: 10massпо умолчанию: 1stiffnessпо умолчанию: 100overshootClampingпо умолчанию: falserestDisplacementThresholdпо умолчанию: 0.001restSpeedThresholdпо умолчанию: 0.001withCallbackобратный вызов, который сработает после окончания анимации выходаrandomDelayрандомизирует задержку анимации между 0 и указанной задержкой (или 1000 мс, если задержка не указана)
Пример:
Последовательный переход¶
Последовательный переход, анимирует сначала x-позицию и ширину, затем y-позицию и высоту.
Модификаторы:
duration(в мс) по умолчанию: 300delay(в мс) по умолчанию: 0withCallbackобратный вызов, который сработает после окончания анимации выходаrandomDelayрандомизирует задержку анимации между 0 и заданной задержкой (или 1000 мс, если задержка не задана)reverseобратный порядок анимации (сначала анимируется измерение y и высота)
Пример:
Затухающий переход¶
Затухающий переход, анимирующий непрозрачность компонента, в результате чего он исчезает при прежнем положении и размерах и появляется при новых.
Модификаторы:
duration(в мс) по умолчанию: 300delay(в мс) по умолчанию: 0withCallbackобратный вызов, который сработает после окончания анимации выходаrandomDelayрандомизирует задержку анимации между 0 и указанной задержкой (или 1000 мс, если задержка не указана).
Пример:
Прыгающий переход¶
Прыгающий переход, компонент "перепрыгивает" в новую позицию.
Модификаторы:
duration(в мс) по умолчанию: 300delay(в мс) по умолчанию: 0withCallbackобратный вызов, который сработает после окончания анимации выходаrandomDelayрандомизирует задержку анимации между 0 и указанной задержкой (или 1000 мс, если задержка не указана).
Пример:
Изогнутый переход¶
Криволинейный переход позволяет анимировать каждую позицию и измерение с различным смягчением, что делает анимацию компонентов криволинейной.
Модификаторы:
duration(в мс) по умолчанию: 300delay(в мс) по умолчанию: 0withCallbackобратный вызов, который сработает после завершения анимации выходаrandomDelayрандомизирует задержку анимации между 0 и указанной задержкой (или 1000 мс, если задержка не указана)easingXобеспечивает Easing для x-позиции (по умолчанию:Easing.in(Easing.ease))easingYобеспечивает Easing для y-позиции (по умолчанию:Easing.out(Easing.ease))easingWidthобеспечивает Easing для ширины (по умолчанию:Easing.in(Easing.exp))easingHeightобеспечивает Easing для высоты (по умолчанию:Easing.out(Easing.exp))
Пример:
Переход входа/выхода¶
Переход вход/выход позволяет задать различные анимации для выхода из текущей позиции и различные анимации для входа в новую позицию с новыми размерами. Вы можете использовать все имеющиеся предопределенные анимации входа/выхода или создать свою собственную. Ее длительность равна сумме длительностей входа и выхода. Также следует иметь в виду, что в качестве анимации входа и выхода нельзя использовать анимацию пружины, так как она не имеет фиксированной длительности.
Модификаторы:
delay(в мс) по умолчанию: 0withCallbackобратный вызов, который сработает после окончания анимации выходаrandomDelayрандомизирует задержку анимации между 0 и указанной задержкой (или 1000 мс, если задержка не указана)enteringанимация, которая будет использоваться для входа в компонент (по умолчанию:FadeIn)exitingанимация, которая будет использоваться для выхода компонента (по умолчанию:FadeOut)
Комбинированный переход
Для упрощения использования перехода мы подготовили функцию combineTransition, которая сделает ваш код чище и короче.
Использование:
1 2 3 4 5 6 | |
Пример: