由于您只使用一个导航器,scaffold会将“底部板材”路线推送到与其他路线相同的导航器。所以不可能在两者之间插入东西。
我建议用另一个导航器包裹脚手架(仅用于推/弹出底板)。现在您将拥有嵌套的导航器-一个位于MaterialApp级别,一个位于scaffold级别。从“应用程序”级别的导航器中弹出内容-这不会触及您的底页。一旦“应用程序”级导航器中没有任何内容,活动将关闭。
这在我看来是可行的。
More info on Nested Navigator
编辑:代码
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: ()async{
if(Navigator.of(context).canPop()) {
Navigator.of(context).pop();
return false;
}
return true;
},
child: Navigator(
onGenerateRoute: (route) => MaterialPageRoute(
builder: (context) => Scaffold(...),
),
),
);
}