Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
731 of 1024 menu
◀ ▶

Метод pop

Метод pop виджета Navigator снимает верхний экран и возвращает на предыдущий. Необязательный result получает предыдущий Route. Если экранов больше нет, вызов бросает ошибку.

Синтаксис

Navigator.pop(context, result)

Параметры

ПараметрОписание
contextBuildContext под 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.

Смотрите также

  • метод push,
    который кладёт Route перед pop
  • метод maybePop,
    pop только если canPop
  • метод canPop,
    проверка перед pop
  • виджет PopScope,
    перехват системного назад
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить