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

Метод canPop

Метод canPop виджета Navigator проверяет, можно ли снять верхний экран. На единственном экране метод возвращает ложь. Истина значит, что следующий pop экран снимет.

Синтаксис

Navigator.canPop(context)

Параметры

ПараметрОписание
contextBuildContext под Navigator.

Пример

Давайте покажем canPop на корне:

import 'package:flutter/material.dart'; class CanRoot extends StatelessWidget { const CanRoot({super.key}); @override Widget build(BuildContext context) { return Text('${Navigator.canPop(context)}'); } } void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CanRoot(), ), ), ), ); }

На экране по центру false.

Пример

Давайте откроем второй экран и снова проверим canPop:

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

На втором экране по центру true; с него pop возможен.

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

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