Метод of
Метод of виджета Navigator. Он принимает context и даёт доступ к push и pop. Без Navigator в предках будет ошибка.
Синтаксис
Navigator.of(context)
Параметры
| Параметр | Описание |
|---|---|
context | BuildContext под Navigator. |
Пример
Давайте откроем экран через Navigator.of:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Builder(
builder: (context) {
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute<void>(
builder: (ctx) => Scaffold(
body: Center(
child: Text('12345'),
),
),
),
);
},
child: const Text('abcde'),
),
),
);
},
),
),
);
}
На экране кнопка 'abcde'; по нажатию of найдёт Navigator и откроет экран '12345'.
Пример
Давайте проверим canPop через of:
import 'package:flutter/material.dart';
class CanPopLabel extends StatelessWidget
{
const CanPopLabel({super.key});
@override
Widget build(BuildContext context)
{
var res = Navigator.of(context).canPop();
return Text('$res');
}
}
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: CanPopLabel(),
),
),
),
);
}
На экране по центру будет false на корневом маршруте без предков.