Метод pop
Метод pop виджета Navigator
снимает верхний экран и возвращает на предыдущий.
Необязательный result получает предыдущий Route.
Если экранов больше нет, вызов бросает ошибку.
Синтаксис
Navigator.pop(context, result)
Параметры
| Параметр | Описание |
|---|---|
context | BuildContext под Navigator. |
result | Необязательный результат для предыдущего экрана. |
Пример
Давайте закроем второй экран кнопкой:
import 'package:flutter/material.dart';
class TopPage extends StatelessWidget
{
const TopPage({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text('12345'),
),
),
);
}
}
void main()
{
runApp(
MaterialApp(
home: TopPage(),
),
);
}
На экране кнопка '12345'; pop закрывает этот экран, если под ним есть маршрут.
Пример
Давайте вернём строку предыдущему экрану:
import 'package:flutter/material.dart';
class ReturnPage extends StatelessWidget
{
const ReturnPage({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
Navigator.pop(context, 'abcde');
},
child: const Text('send'),
),
),
);
}
}
void main()
{
runApp(
MaterialApp(
home: ReturnPage(),
),
);
}
На экране pop отдаст 'abcde' тому, кто открывал этот Route через await push.