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

Метод popUntil

Метод popUntil виджета Navigator обычно предикат проверяет route.isFirst.

Синтаксис

Navigator.popUntil(context, (route) => route.isFirst);

Параметры

ПараметрОписание
contextBuildContext под Navigator.
predicateГде остановить pop.

Пример

Давайте вернуться к первому экрану:

import 'package:flutter/material.dart'; class PopUntilPage extends StatelessWidget { const PopUntilPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: ElevatedButton( onPressed: () { Navigator.popUntil( context, (route) => route.isFirst, ); }, child: const Text('abcde'), ), ), ); } } void main() { runApp( MaterialApp( home: Builder( builder: (context) { return Scaffold( body: Center( child: ElevatedButton( onPressed: () { Navigator.push( context, MaterialPageRoute<void>( builder: (ctx) => PopUntilPage(), ), ); }, child: const Text('open'), ), ), ); }, ), ), ); }

На втором экране кнопка 'abcde'; popUntil вернёт к первому маршруту с кнопкой open.

Пример

Давайте остановить popUntil по имени:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( initialRoute: '/root', onGenerateRoute: (settings) { return MaterialPageRoute<void>( settings: settings, builder: (ctx) => Scaffold( body: Center( child: ElevatedButton( onPressed: () { Navigator.popUntil( ctx, (r) => r.settings.name == '/root', ); }, child: Text(settings.name ?? '12345'), ), ), ), ); }, ), ); }

На экране popUntil вернёт к маршруту с name '/root'.

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

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить