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

Перечисление AnimationStatus

Перечисление AnimationStatus приходит в addStatusListener у Animation. Так отслеживают конец tween у AnimationController.

Синтаксис

AnimationStatus.forward

Значения

Значение Описание
dismissed value на нижней границе, анимация не идёт.
forward value растёт к концу диапазона.
reverse value уменьшается к началу.
completed value дошёл до верхней границы.

Пример

Давайте выведем статус в консоль при forward:

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: 400), ); _controller.addStatusListener((status) { if (status == AnimationStatus.forward) { print('abcde'); } }); _controller.forward(); } @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', в консоли при forward появится 'abcde'.

Пример

Давайте дождаться completed и вывести подпись:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: AnimatedCrossFade( duration: Duration(milliseconds: 400), crossFadeState: CrossFadeState.showFirst, firstChild: Text('abcde'), secondChild: Text('12345'), ), ), ), ), ); }

На экране виден 'abcde', второй child '12345' появится после смены CrossFadeState.

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

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