【发布时间】:2020-11-12 00:22:57
【问题描述】:
我有一个推送其他子导航器的主导航器,但是如果我从子导航器推送一条路线,在 iOS 上,当我从打开的小部件滑回时,它会返回到主导航器根目录,而不是转到子小部件,那么我如何首先使用滑动手势处理子导航器的历史记录,并且仅当我位于子导航器的根目录(如单个导航器)时才允许返回主导航器?
这是主导航器:
class MenuNavigator extends StatelessWidget {
final GlobalKey<NavigatorState> navigatorKey;
const MenuNavigator({Key key, this.navigatorKey}) : super(key: key);
WidgetBuilder routeBuilder(
RouteSettings routeSettings, GetUserResponse userResponse) {
switch (routeSettings.name) {
case MenuNavigatorRoutes.root:
return (context) => MenuPage();
case MenuNavigatorRoutes.documents:
return (context) => DocumentsNavigator();
case MenuNavigatorRoutes.requests:
return (context) => RequestsNavigator();
default:
return null;
}
}
@override
Widget build(BuildContext context) {
return Navigator(
key: navigatorKey,
initialRoute: MenuNavigatorRoutes.root,
onGenerateRoute: (routeSettings) {
return MaterialPageRoute(
settings: routeSettings,
builder: (context) =>
routeBuilder(routeSettings, userResponse)(context));
},
);
}
}
DocumentsNavigator 和 RequestsNavigator 是子导航器,结构与 MenuNavigator 相同,但处理其他路由。
【问题讨论】:
-
你找到解决办法了吗?
-
还没有,可能我会在一个导航器下移动路线
-
关于颤振/颤振有一个(长)讨论:github.com/flutter/flutter/issues/14203。看来他们也没有找到解决办法。
标签: ios flutter swipe navigator