내가 주로 사용하는 방법

routes.dart

import 'package:flutter/material.dart';
import 'package:my_dream/login/StudentIdentityCheck.dart';
import 'package:my_dream/login/login.dart';
import 'package:my_dream/main_screen.dart';
import 'package:my_dream/start_Page.dart';

final Map<String, WidgetBuilder> appRoutes = {
  '/LoginPage': (context) => const LoginPage(), // 로그인 회원가입 페이지
  '/TextPage': (context) => const LoginPage(), // 로그인 회원가입 페이지
  '/StudentIdentityCheck': (context) =>
      const StudentIdentityCheck(), // 학생 인증 페이지
  '/MainScreen': (context) => const MainScreen(), // 메인화면 페이지
  '/StartPage': (context) => const StartPage(), // 로그인 전 페이지
};

main.dart

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      routes: appRoutes, //  => 여기가 포인트
      initialRoute: widget.isLoggedIn ? '/MainScreen' : '/StartPage',
    );
  }
}

사용방법

화면 이동하는 기능 (서로 자유롭게 이동 가능 ⇒ 이전 화면으로도)

화면 이동하는 기능 (이전 화면으로 이동 불가)

화면 이동하는 기능 (이전 화면 스택 제거)