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

Метод addObserver

Метод addObserver миксина WidgetsBinding подключает объект с миксином WidgetsBindingObserver к WidgetsBinding.instance.

Синтаксис

WidgetsBinding.instance.addObserver(observer)

Параметры

ПараметрОписание
observerЭкземпляр с миксином WidgetsBindingObserver.

Пример

Давайте выведем фазу жизни приложения:

import 'package:flutter/material.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); runApp(MaterialApp(home: Scaffold(body: Center(child: LifecycleEcho())))); } class LifecycleEcho extends StatefulWidget { const LifecycleEcho({super.key}); @override State<LifecycleEcho> createState() => _LifecycleEchoState(); } class _LifecycleEchoState extends State<LifecycleEcho> with WidgetsBindingObserver { String phase = 'abcde'; @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); } @override void dispose() { WidgetsBinding.instance.removeObserver(this); super.dispose(); } @override void didChangeAppLifecycleState(AppLifecycleState state) { setState(() => phase = state.name); } @override Widget build(BuildContext context) => Text(phase); }

На экране текст покажет имя текущей AppLifecycleState.

Пример

Давайте зарегистрируем отдельный класс-наблюдатель:

import 'package:flutter/material.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); final log = LifecycleLog(); WidgetsBinding.instance.addObserver(log); runApp(MaterialApp(home: Scaffold(body: Center(child: Text('12345'))))); } class LifecycleLog with WidgetsBindingObserver { void didChangeMetrics() { } }

На экране текст '12345', наблюдатель получит didChangeMetrics при смене размеров.

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

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