Это не даст требуемого результата, так как вы уже вытолкнули контекст перед вызовом другого класса Navigator. Я попробовал функцию Navigator.of(context).pushNamedAndRemoveUntil()
, но мой HomeScreen все равно дважды помещался в стек с кнопкой «Назад» на экране 1. Следовательно, я наконец-то получил эту функцию с помощью встроенной функции Navigator.of(context).popUntil()
. Вы можете запустить этот дартпад код https://dartpad.dev/a10ed43452736b5c6b3d1abe6a7eda45 для просмотра желаемого эффекта или просмотра кода ниже. Ниже приведен фрагмент кода из сущности:
...
class ThirdPage extends StatelessWidget{
static const routeName = '/third';
@override
Widget build(BuildContext context){
void _nextPage(){
//Logic here - ***************************
Navigator.of(context).popUntil((Route<dynamic> route) => route.isFirst);
}
return Scaffold(
appBar: AppBar(
title: Text('Third Page'),
),
body: Center(
child: Text('Third Page'),
),
floatingActionButton: FloatingActionButton(
onPressed: _nextPage,
child: Icon(Icons.add),
),
);
}
}
Удачного кодирования D:)