Метод didChangeMetrics
Метод didChangeMetrics миксина WidgetsBindingObserver
вызывают при повороте, смене клавиатуры или выреза экрана.
Новые размеры читают из вида, сам метод аргументов не получает.
Синтаксис
void didChangeMetrics()()
Пример
Давайте обновим подпись после metrics:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home: Scaffold(body: Center(child: ObsDemo()))));
class ObsDemo extends StatefulWidget {
const ObsDemo({super.key});
@override State<ObsDemo> createState() => _ObsDemoState();
}
class _ObsDemoState extends State<ObsDemo> with WidgetsBindingObserver {
String label = 'abcde';
@override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); }
@override void dispose() { WidgetsBinding.instance.removeObserver(this); super.dispose(); }
@override void didChangeMetrics() { setState(() => label = '12345'); }
@override Widget build(BuildContext c) => Text(label);
}
На экране текст сменится по событию.
Пример
Давайте залогируем смену:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home: Scaffold(body: Center(child: Text('abcde')))));
На экране текст 'abcde'.
Смотрите также
-
миксин
WidgetsBindingObserver,
где объявлен метод -
метод
addObserver,
который подключает observer -
перечисление
AppLifecycleState,
для фаз приложения -
миксин
WidgetsBinding,
который рассылает события