main의 코드가 길어지다 보면 가독성이 저하되기 때문에, 별도로 route만 관리하는 파일을 만드는 것이 좋다.
main.dart에서 route를 일일이 작성했다.
void main() async {
...
runApp(
child: MaterialApp(
...
initialRoute: '/',
routes: {
'/': (context) => FirstScreen(),
'/second': (context) => SecondScreen(),
},
),
);
}
참고 문서: https://flutter-ko.dev/docs/cookbook/navigation/named-routes
class RouteName {
static const splash = "/";
static const login = "/login";
}
var namedRoutes = <String, WidgetBuilder>{ // <String, WidgetBuilder> 생략가능
RouteName.splash: (context) => SplashView(),
RouteName.login: (context) => LoginPage(),
};
void main() async {
...
runApp(
child: MaterialApp(
...
initialRoute: RouteName.splash,
routes: namedRoutes,
),
);
}
Navigator.pushNamed(context, RouteName.login);
RouteName.main까지 모든 route를 pop() 한다.
Navigator.popUntil(context, ModalRoute.withName(RouteName.main));