AnimatedPositioned
Last updated
Last updated
AnimatedPositioned
AnimatedPositioned
— это виджет, который автоматически анимирует изменение позиции элемента в пределах контейнера Stack
. Когда положение элемента изменяется, AnimatedPositioned
плавно перемещает его из одного места в другое в течение указанного времени. Это полезно для создания эффектов анимации позиции без необходимости вручную управлять состоянием анимации.
В этом примере мы создаем анимируемый квадрат, который меняет своё положение в зависимости от того, нажата кнопка или нет.
Создание состояния _isMoved
— переменная, которая определяет текущее положение контейнера. При нажатии кнопки состояние изменяется, и квадрат переходит на новую позицию.
AnimatedPositioned — размещен внутри Stack
и использует left
и top
для задания положения контейнера. При изменении _isMoved
значение этих параметров изменяется, вызывая анимацию перехода.
duration и curve — задают скорость и стиль анимации (в нашем случае 1 секунда и плавный переход с эффектом easeInOut
).
left, right, top, bottom
Описание: Определяют позицию виджета относительно краев контейнера Stack
.
Пример:
Применение: Используются для задания начального и конечного положения.
width и height
Описание: Определяют ширину и высоту виджета. Эти параметры также можно анимировать.
Пример:
Применение: Полезны, когда нужно изменить размеры виджета вместе с его позицией.
duration
Описание: Задает время, за которое виджет перемещается в новое положение.
Пример:
Применение: Определяет длительность анимации, влияя на скорость перехода.
curve
Описание: Определяет кривую анимации, которая влияет на стиль движения (например, плавный или резкий переход).
Пример:
Применение: Делает анимацию более естественной за счет выбора разных эффектов, таких как линейный или ускоренный переход.
child
Описание: Виджет, который находится внутри AnimatedPositioned
и для которого анимируется положение.
Пример:
Применение: Это анимируемый элемент, будь то контейнер, изображение или другой виджет.
AnimatedPositioned
— простой и мощный способ анимировать изменения позиции и размеров элементов в Stack
. Это отличный способ добавить интерактивности, улучшив пользовательский опыт за счет плавных перемещений элементов.