Класс Route
Класс Route - абстракция страницы,
которую кладут на стопку
Navigator.
У маршрута есть
RouteSettings
с именем и аргументами.
Конкретный переход Material делают через
MaterialPageRoute
или
PageRouteBuilder.
Синтаксис
MaterialPageRoute<void>(
builder: (context) => const Placeholder(),
)
Пример
Давайте положим MaterialPageRoute на стопку через push:
import 'package:flutter/material.dart';
class RouteHome extends StatelessWidget
{
const RouteHome({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
Route<void> page = MaterialPageRoute<void>(
builder: (ctx) => Scaffold(
body: Center(
child: Text('12345'),
),
),
);
Navigator.push(context, page);
},
child: const Text('abcde'),
),
),
);
}
}
void main()
{
runApp(
MaterialApp(
home: RouteHome(),
),
);
}
На экране кнопка 'abcde'; push кладёт Route и открывает '12345'.
Пример
Давайте прочитаем settings.name у Route:
import 'package:flutter/material.dart';
void main()
{
var route = MaterialPageRoute<void>(
settings: const RouteSettings(name: '/test'),
builder: (context) => const SizedBox.shrink(),
);
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text(route.settings.name ?? 'abcde'),
),
),
),
);
}
На экране по центру строка '/test' из settings маршрута.
Смотрите также
-
класс
MaterialPageRoute,
готовыйRouteсо сдвигомMaterial -
класс
ModalRoute,
Route, который перекрывает предыдущий экран -
класс
RouteSettings,
имя и arguments маршрута -
виджет
Navigator,
стопка экземпляровRoute