Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
822 of 1024 menu
◀ ▶

Класс Animation

Класс Animation<T> слушают через addListener. Его часто даёт AnimationController или animate у Tween.

Синтаксис

Animation<double> animation

Методы

Метод Описание
addListener Подписывает VoidCallback на изменение value анимации.
addStatusListener Подписывает callback на смену AnimationStatus.
drive Строит Animation из Animatable, привязанный к этой Animation.
removeListener Отписывает listener от изменений value. Давайте разберём вызов на примерах.
removeStatusListener Отписывает statusListener от анимации. Давайте разберём вызов на примерах.

Пример

Давайте выведем value у контроллера:

import 'package:flutter/material.dart'; class Pulse extends StatefulWidget { const Pulse({super.key}); @override State<Pulse> createState() => _PulseState(); } class _PulseState extends State<Pulse> with SingleTickerProviderStateMixin { late AnimationController _controller; @override void initState() { super.initState(); _controller = AnimationController( vsync: this, duration: Duration(milliseconds: 600), ); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: Text('12345'), ), ), ); } } void main() { runApp(const Pulse()); }

На экране по центру строка '12345' рядом с value AnimationController.

Пример

Давайте покажем opacity через Animation:

import 'package:flutter/material.dart'; class Pulse extends StatefulWidget { const Pulse({super.key}); @override State<Pulse> createState() => _PulseState(); } class _PulseState extends State<Pulse> with SingleTickerProviderStateMixin { late AnimationController _controller; @override void initState() { super.initState(); _controller = AnimationController( vsync: this, duration: Duration(milliseconds: 600), ); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { Animation<double> anim = _controller; return MaterialApp( home: Scaffold( body: Center( child: FadeTransition( opacity: anim, child: Text('abcde'), ), ), ), ); } } void main() { runApp(const Pulse()); }

На экране 'abcde' связан с Animation контроллера.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить