Жест Flutter смахивания назад с использованием вложенных навигаторовIOS

Программируем под IOS
Anonymous
Жест Flutter смахивания назад с использованием вложенных навигаторов

Сообщение Anonymous »

У меня есть основной навигатор, который подталкивает другие дочерние навигаторы, но если я прокладываю маршрут из дочернего навигатора, то в iOS, когда я смахиваю назад от открытого виджета, он возвращается в корень основного навигатора вместо того, чтобы перейти в корень дочерний виджет, так как я могу сначала обработать историю дочернего навигатора с помощью жеста прокрутки и разрешить вернуться к основному навигатору, только если я нахожусь в корне дочернего элемента (например, один навигатор) ?
Это основной навигатор:

Код: Выделить всё

class MenuNavigator extends StatelessWidget {
final GlobalKey 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, но обрабатывают другие маршруты.

Подробнее здесь: https://stackoverflow.com/questions/630 ... navigators

Вернуться в «IOS»