从侧面菜单颤动导航时如何清除返回堆栈?

时间:2021-01-21 11:28:51

标签: flutter dart

有 3 个屏幕,主页。菜单屏幕 1 和菜单屏幕 2,

当我通过抽屉从主屏幕导航到屏幕时,系统会保留所有堆栈跟踪,

如果android硬件后退按钮被按下,它会弹回主屏幕,从抽屉导航时有什么方法可以清除后退堆栈。

请看图

enter image description here

2 个答案:

答案 0 :(得分:1)

导航到下一个屏幕时,您可以在清除路线堆栈的同时使用 pushAndRemoveUntil 转到下一个屏幕。请参阅以下示例。

   Navigator.pushAndRemoveUntil(
  context, 
  MaterialPageRoute(
    builder: (context) => NextScreen()
  ), 
 ModalRoute.withName("/Home")
);

答案 1 :(得分:1)

如果您使用命名路由或仅使用 pushNamedAndRemoveUntil

,您可以使用 pushAndRemoveUntil 清除堆栈

使用命名路由:

  Navigator.pushNamedAndRemoveUntil(context, '/home', (route) => false);

没有命名路由:

  Navigator.pushAndRemoveUntil(context,
      MaterialPageRoute(builder: (context) => Home()), (route) => false);