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

Класс TickerCanceled

AnimationController ждёт кадры через ticker. Если виджет с SingleTickerProviderStateMixin уничтожили, await на forward или reverse завершится ошибкой TickerCanceled.

Синтаксис

throw TickerCanceled();

Пример

Давайте поймать TickerCanceled и показать abcde:

import 'package:flutter/material.dart'; class Demo extends StatefulWidget { @override State<Demo> createState() => _DemoState(); } class _DemoState extends State<Demo> with SingleTickerProviderStateMixin { late AnimationController controller; @override void initState() { super.initState(); controller = AnimationController( vsync: this, duration: const Duration(seconds: 2), ); _run(); } Future<void> _run() async { try { await controller.forward(); } on TickerCanceled { print('abcde'); } } @override void dispose() { controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return const Center( child: Text('abcde'), ); } } void main() { runApp( const MaterialApp( home: Demo(), ), ); }

На экране 'abcde'; при dispose в консоли появится 'abcde' из catch.

Пример

Давайте вывести 12345 при отмене:

import 'package:flutter/scheduler.dart'; void main() { try { throw TickerCanceled(); } on TickerCanceled { print('12345'); } }

Результат выполнения кода

12345

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

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