Android 安卓后退按钮在按下时不停地将我带回第一个屏幕';如果抽屉打开了,就不要关上
我创建了多个屏幕作为独立的dart文件,并在主屏幕中创建了一个抽屉。当我选择任何屏幕时,它会将我导航到它,但问题是:Android 安卓后退按钮在按下时不停地将我带回第一个屏幕';如果抽屉打开了,就不要关上,android,ios,flutter,navigation-drawer,back,Android,Ios,Flutter,Navigation Drawer,Back,我创建了多个屏幕作为独立的dart文件,并在主屏幕中创建了一个抽屉。当我选择任何屏幕时,它会将我导航到它,但问题是: 如果我按下硬件后退按钮,它会将我带回应用程序的第一个屏幕,即启动屏幕 如果我按下应用程序栏上的后退按钮,它会将我带回上一个屏幕,但抽屉显示为打开状态 如果抽屉打开,我按下硬件返回按钮,它没有关闭它,它也会把我带回第一个屏幕(启动屏幕)。。。喜欢我的第一点。 示例:我的主页导航器代码: onPressed: (){ Navigator.push(context, Mater
示例:我的主页导航器代码:
onPressed: (){ Navigator.push(context,
MaterialPageRoute(builder: (context) => Profile(),
)
我读过关于Willposcope的书并使用过它,但情况仍然是这样。我解决了这个问题,在它推到新屏幕之前在启动屏幕中添加了以下代码
Navigator.popUntil(context, ModalRoute.withName('/scrren'));
我通过使用
Navigator.popandpushname()
方法解决了这个问题
void main() {
runApp(MaterialApp(routes: {
'/': (context) => SplashScreen(),
'/home': (context) => HomePage(),
'/signin': (context) => Confirm(),
}));
}
在检查用户是否已经登录的函数中,根据布尔响应,我们可以在屏幕上推送新页面。这样,如果用户按下硬件后退按钮,则不会显示SplashScreen(),应用程序将直接关闭
Navigator.popAndPushNamed(context, '/home');
Navigator.popAndPushNamed(context, '/signin');
用户成功登录后,我们可以推送相同的Home()页面
对我的三个问题有什么想法吗
void _signIn(){
if (_success){
Navigator.popAndPushNamed(context, '/home');
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
routes: {
'/home': (context) => HomePage(),
});