У меня есть функция, которая переходит на новую страницу с настройками маршрута
void pushWithSettings(
{@required BuildContext context, @required Widget newPage}) {
Navigator.push(
context,
MaterialPageRoute(
settings: RouteSettings(
name: newPage.toString(),
),
builder: (_) => newPage));
}
, и я выхожу на определенную страницу, используя
Navigator.popUntil(context, ModalRoute.withName(Page().toString));
Это хорошо работает в режиме отладки, но в профиля и режима выпуска он появляется только один раз
Пример для контекста
import 'package:flutter/material.dart';
import 'package:flutter_app/main.dart';
class FirstPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Center(child: Text("First Page"),),
RaisedButton(
onPressed: (){
pushWithSettings(context: context, newPage: SecondPage());
},
child: Text("Navigate to second", style: TextStyle(inherit: false)),
)
],
);
}
}
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Center(child: Text("Second Page"),),
RaisedButton(
onPressed: (){
pushWithSettings(context: context, newPage: ThirdPage());
},
child: Text("Navigate to third", style: TextStyle(inherit: false)),
)
],
);
}
}
class ThirdPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Center(child: Text("Third Page"),),
RaisedButton(
onPressed: (){
Navigator.popUntil(context, ModalRoute.withName(FirstPage().toString()));
},
child: Text("Navigate to first", style: TextStyle(inherit: false),),
)
],
);
}
}
В режиме отладки нажатие кнопки на третьей странице приводит к переходу на первую страницу, но в режиме профиля и выпуска нажатие кнопка ничего не делает. Я сейчас использую flutter 1.17.4 на стабильном канале