Я пытаюсь реализовать простую панель BottomNavigationBar для навигации по экранам, которые я генерирую динамически.
Наличие фона React. js Я думал о том, чтобы вокруг экранов была какая-то оболочка, которая содержала бы BottomNavigationBar и отображала экраны как дочерние в соответствии с текущим маршрутом. Но нет никакого способа добавить дочерний элемент при определении виджета MaterialApp, чтобы BottomNavigationBar присутствовал и каким-то образом обвивал экраны из onGenerateRoute. Единственный другой способ, которым я вижу, - это передать мой BottomNavigationBar на каждый экран как свойство bottomNavigationBar в Scaffold. Но, похоже, это не оптимальная вещь.
Вот мой Маршрутизатор:
class Router {
static Route<dynamic> generateRoute(RouteSettings settings) {
final args = settings.arguments;
switch (settings.name) {
case '/':
return MaterialPageRoute(
builder: (BuildContext context) => Home(),
);
default:
return MaterialPageRoute(
builder: (BuildContext context) => Error(),
);
}
}
}
Маршрутизатор, который я передаю свойству onGenerateRoute виджета MaterialApp:
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
onGenerateRoute: Router.generateRoute,
);
}
}