Вложенная навигация (Nested Navigation) используется для роутов с несколькими вложенными вкладками.в
AutoRoute содержит поле
children, в который можно передать список AutoRoute. И при помощи виджета AutoRouter организовать автоматическую навигацию между вложенными страницами.
AutoRoute(
page: BottomNavRoute.page,
children: [
AutoRoute(page: HomeRoute.page),
AutoRoute(page: ListRoute.page),
...
],
);
@override
Widget build(BuildContext context) {
return Scaffold(
body: AutoRouter(),
bottomNavigationBar: BottomNavigationBar(
/// Navigate here
),
);
}
}
Анимация при навигации
Используем transitionBuilder и создаём собственный вариант перехода для анимации роута.
CustomRoute(
page: ZoomInScreen,
transitionsBuilder:
(BuildContext context, Animation<double> animation, _, Widget child) {
return ScaleTransition(scale: animation, child: child);
},
)
Многомодульность
При вводе бойлерплейт генерируется модуль для всех роутов модуля.
@AutoRouterConfig.module()
class MyPackageModule extends $MyPackageModule {}
При добавлении модуля, AppRouter получает доступ ко всей информации о роутах
MyPackageModule. Однако, как и при обычной генерации, все роуты необходимо прописать в класс AppRouter.@AutoRouterConfig([
MyPackageModule,
…
])
class AppRouter extends $AppRouter {
@override
List<AutoRoute> get routes => [
AutoRoute(page: HomeRoute.page),
…
];
}
В следующий раз расскажем про
RouteGuard и их применение. Всем хорошего кода!Делитесь в чате своим опытом работы с библиотекой.
