개발/Flutter

[Flutter] 플러터에서 화면이동 하기!

qkrgusqls 2023. 8. 3. 18:23

데이터 청년 캠퍼스에서 하는 프로젝트에서 페이지간 이동이 너무 많아서
페이지끼리 자연스럽게 이동하는 것 처럼 보이는 경로를 지정하는데도 개발하는 내내 고민이 되었다🥹

 

Navigator.push 활용

플러터에서 다양한 페이지 전환 방법이 있는 것으로 알고 있는데, 우선 가장 쉽게 사용할 수 있었던 방법을 먼저 정리해보고자 한다.

Navigator.push 원하는 페이지로 이동하는 것 
Navigator.pop 이전 화면으로 되돌아오는 것 

 

 Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) => const HomePage(),
            ),

 

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  HomePageState createState() => HomePageState();
}

class HomePageState extends State<HomePage> { ... }

 

이 코드를 버튼과 같은 곳에 넣어주면, 버튼을 클릭했을 때 HomePage로 이동하게 되는 것이다.

여기서 HomePage는 class 이름을 말하고, HomePage class가 들어있는 dart파일을 import해주면 끝이다. 

이동하려고 하는 파일만 import하는 것만 잊지 않으면 된다. 

 

 Navigator.pop(context);

Navigator.pop은 바로 이전의 페이지를 띄우는 것이기 때문에 코드가 더 간단하다. 

 

named Routes 활용 

MaterialApp 부분에서 routes를 이용할 수 있다.

MaterialApp(
      home: const HomePage(),
      routes: {
        '/home': (context) => const HomeScreen(),
        '/diagnosis': (context) => const DiagnosisScreen(),
        '/profile': (context) => const LoginPage(),
      },
    );

이렇게 미리 명명해두면

  Navigator.pushNamed(context, '/home');

더 간단하게 코드를 작성할 수 있다.

 

위의 내용은 자주 쓰이니까 잘 숙지하도록 해야겠다.

이렇게 간단한 페이지 이동 말고도 데이터를 받아 그 값을 전달하는 화면 이동에 대해서도 공부해야 한다.