Метод canPop
Метод canPop виджета Navigator
проверяет, можно ли снять верхний экран.
На единственном экране метод возвращает ложь.
Истина значит, что следующий pop экран снимет.
Синтаксис
Navigator.canPop(context)
Параметры
| Параметр | Описание |
|---|---|
context | BuildContext под 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 возможен.