AnimatedCrossFade
Last updated
Last updated
AnimatedCrossFade
AnimatedCrossFade
— это виджет, который позволяет плавно переключаться между двумя элементами с эффектом перекрестного затемнения (crossfade). Этот виджет полезен, если вы хотите, чтобы два виджета постепенно сменяли друг друга с красивой анимацией, например, когда текст или изображение меняется на другой вариант при выполнении какого-либо действия.
В этом примере у нас есть два изображения, которые будут постепенно сменять друг друга при нажатии кнопки.
Начальное состояние — _showFirst
установлено как true
, что делает видимым первый элемент (firstChild
).
Функция _toggleFade
— срабатывает при нажатии кнопки, меняет _showFirst
на противоположное значение, переключая видимый элемент на другой.
AnimatedCrossFade — отображает firstChild
или secondChild
в зависимости от состояния crossFadeState
. Когда состояние меняется, анимация перекрестного затемнения плавно сменяет один элемент на другой, используя duration
для продолжительности и sizeCurve
для плавности изменения размера.
firstChild
Описание: Первый виджет, который будет отображаться в анимации.
Пример:
Применение: Определяет, какой элемент показывается первым.
secondChild
Описание: Второй виджет, который появляется после перекрестного затемнения.
Пример:
Применение: Задает виджет, который будет показан после перехода.
crossFadeState
Описание: Указывает, какой виджет отображается: CrossFadeState.showFirst
или CrossFadeState.showSecond
.
Пример:
Применение: Переключает видимость между firstChild
и secondChild
.
duration
Описание: Длительность анимации перехода.
Пример:
Применение: Определяет, как долго длится анимация смены.
sizeCurve
Описание: Кривая анимации, определяющая плавность изменения размера виджета.
Пример:
Применение: Настраивает поведение изменения размера при переходе между элементами.
layoutBuilder
Описание: Функция, определяющая, как оба элемента будут располагаться друг относительно друга.
Пример:
Применение: Используется для создания пользовательской компоновки, чтобы настроить поведение виджетов во время перехода.
AnimatedCrossFade
позволяет создать красивую анимацию для плавного переключения между двумя элементами. Этот виджет помогает сделать интерфейс динамичным и визуально привлекательным, добавляя анимацию перехода для смены контента.