【发布时间】:2021-12-29 08:02:45
【问题描述】:
打开app,页面顺序是A->B->C,我想在C页面上关闭B页面,页面顺序是A->C。
据我所知Navigator.removeRoute(context, routerC)可以用,但是不知道routerC怎么获取。
你能告诉我怎么做吗?谢谢
【问题讨论】:
-
这能回答你的问题吗? How to remove a particular route in flutter?
打开app,页面顺序是A->B->C,我想在C页面上关闭B页面,页面顺序是A->C。
据我所知Navigator.removeRoute(context, routerC)可以用,但是不知道routerC怎么获取。
你能告诉我怎么做吗?谢谢
【问题讨论】:
路由列表类
class AppRoutes {
static String get A=> "/a";
static String get B=> "/b";
static String get C=> "/c";
static String get K=> "/k";
如下编写删除路由函数
clearRouteAndOpen(BuildContext context, String name,
{Object? arguments, String? removeUntil}) {
Navigator.pushNamedAndRemoveUntil(
context, name, ModalRoute.withName(removeUntil ?? name),
arguments: arguments);
}
当在工具栏中按下后按或任何可以从 C 中轻松删除 B 的操作时调用 removeRoute 函数。从 C 屏幕调用下面的函数。假设A从K屏开始。删除直到 K。
clearRouteAndOpen(
context,
AppRoutes.A,
removeUntil: AppRoutes.K,
);
【讨论】: