Метод ensureInitialized
Метод ensureInitialized миксина WidgetsBinding объявлен у миксина.
На практике вызывают WidgetsFlutterBinding.ensureInitialized
до runApp,
если нужны каналы, плагины или другая работа до первого кадра.
Синтаксис
WidgetsFlutterBinding.ensureInitialized()
Пример
Давайте инициализируем движок перед runApp:
import 'package:flutter/material.dart';
void main()
{
WidgetsFlutterBinding.ensureInitialized();
runApp(
MaterialApp(
home: Scaffold(body: Center(child: Text('abcde'))),
),
);
}
На экране появится текст 'abcde'.
Пример
Давайте проверим, что instance доступен после вызова:
import 'package:flutter/material.dart';
void main()
{
WidgetsFlutterBinding.ensureInitialized();
final ready = WidgetsBinding.instance.isRootWidgetAttached;
runApp(
MaterialApp(
home: Scaffold(
body: Center(child: Text(ready ? '12345' : 'abcde')),
),
),
);
}
На экране до runApp корень ещё не прикреплён, текст будет 'abcde'.
Смотрите также
-
миксин
WidgetsBinding,
где объявленensureInitialized -
функция
runApp,
которую вызывают после инициализации -
метод
addPostFrameCallback,
который ставят на instance -
константа
kReleaseMode,
которая false при отладке