Метод of
Метод of класса ModalRoute. Он поднимается по дереву от context и даёт доступ к settings и флагам isCurrent, isActive.
Синтаксис
ModalRoute.of(context)
Параметры
| Параметр | Описание |
|---|---|
context |
BuildContext виджета внутри Route.
|
Пример
Давайте выведем name из settings:
import 'package:flutter/material.dart';
class NameFromRoute extends StatelessWidget
{
const NameFromRoute({super.key});
@override
Widget build(BuildContext context)
{
var name = ModalRoute.of(context)?.settings.name;
return Text(name ?? 'abcde');
}
}
void main()
{
runApp(
MaterialApp(
initialRoute: '/root',
onGenerateRoute: (settings) {
return MaterialPageRoute<void>(
settings: settings,
builder: (context) => Scaffold(
body: Center(
child: NameFromRoute(),
),
),
);
},
),
);
}
На экране по центру строка '/root'.
Пример
Давайте проверим isCurrent на верхнем экране:
import 'package:flutter/material.dart';
class CurrentFlag extends StatelessWidget
{
const CurrentFlag({super.key});
@override
Widget build(BuildContext context)
{
var route = ModalRoute.of(context);
return Text('${route?.isCurrent}');
}
}
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: CurrentFlag(),
),
),
),
);
}
На экране по центру true для видимого маршрута.
Смотрите также
-
класс
ModalRoute,
класс, которому принадлежитof -
класс
RouteSettings,
читается черезModalRoute.of -
класс
MaterialPageRoute,
ModalRouteс анимациейMaterial -
метод
Navigator.of,
доступ к стопкеNavigator