我正在寻找一种摆脱持久底部导航栏的方法。一旦我们进入它,我几乎每一次溃败都试图摆脱它。但这在任何一次都不起作用。只要一个简单的后退按钮,整个东西就消失了,离开了我称之为底部导航栏的地方。请帮我解决这个问题。
谨致问候。
使用此
Navigator.of(context, rootNavigator: true).pushAndRemoveUntil(
MaterialPageRoute(
builder: (BuildContext context) {
return LoginScreen();
},
),
(_) => false,
));
我从这里的问题中找到了这个解决方案。
您可以通过存储根页面buildContext
来获得预期结果。这允许您以后基于该context
进行导航。
可以通过以下方式存储context
:
import 'package:flutter/cupertino.dart';
class ContextKeeper {
static BuildContext buildContext;
void init(BuildContext context) {
buildContext = context;
}
}
现在调用根页面中的init
函数,该函数包含navigation bar
:
@override
void initState() {
super.initState();
ContextKeeper().init(context);
}
您现在可以根据保存的context
:调用Navigator
Navigator.pushNamedAndRemoveUntil(
ContextKeeper.buildContext, 'screen_without_your_nav_bar', (_) => false);
我在文章的评论中找到了这个解决方案。