Flutter에서 화면 전환은 이렇게! – Navigator 완전 정복 🌈

2025. 5. 15. 16:44·Flutter
728x90
반응형

Flutter로 앱을 만들다 보면, 한 화면에서 다른 화면으로 넘어가는 상황이 자주 발생한다. 예를 들어, 로그인 후 홈 화면으로 이동하거나, 리스트에서 아이템을 눌러 상세 페이지로 가는 등의 흐름 말이다.

이번 글에서는 Flutter에서 페이지 간 이동을 담당하는 Navigator에 대해 알아보고, push, pop, named routes 등 다양한 방법을 예제와 함께 정리해보았다.


🚀 Navigator란?

Flutter의 Navigator는 Stack 구조로 되어 있어 화면 이동을 쉽게 처리할 수 있도록 도와준다.
push는 새 화면을 추가하고, pop은 이전 화면으로 돌아가는 방식이다.

📄 예제: 페이지 이동 기본


import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(
    home: FirstPage(),
  ));
}

class FirstPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('첫 번째 페이지')),
      body: Center(
        child: ElevatedButton(
          child: Text('두 번째 페이지로 이동'),
          onPressed: () {
            Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => SecondPage()),
            );
          },
        ),
      ),
    );
  }
}

class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('두 번째 페이지')),
      body: Center(
        child: ElevatedButton(
          child: Text('뒤로 가기'),
          onPressed: () {
            Navigator.pop(context);
          },
        ),
      ),
    );
  }
}

🧭 Named Route 사용하기

라우트를 미리 등록하고 이름으로 호출하는 방식도 있다. 이 방식은 규모가 큰 앱에서 유지보수가 용이하다.


// main.dart
void main() {
  runApp(MaterialApp(
    initialRoute: '/',
    routes: {
      '/': (context) => FirstPage(),
      '/second': (context) => SecondPage(),
    },
  ));
}

// 페이지 이동
Navigator.pushNamed(context, '/second');

🧳 화면 전환 시 데이터 전달


// 데이터 전달
Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) => SecondPage(data: '안녕'),
  ),
);

// SecondPage
class SecondPage extends StatelessWidget {
  final String data;
  SecondPage({required this.data});

  @override
  Widget build(BuildContext context) {
    return Text('받은 데이터: $data');
  }
}

🎯 요약

  • Navigator.push(): 새 화면을 스택에 추가
  • Navigator.pop(): 이전 화면으로 되돌아가기
  • pushNamed, popAndPushNamed: 라우트 이름으로 화면 이동
  • 화면 간 데이터 전달도 손쉽게 가능

Flutter의 화면 전환은 단순하지만, 앱의 흐름을 자연스럽게 만드는 핵심 기능이다.
처음에는 헷갈릴 수 있지만 몇 번만 써보면 자연스럽게 익힐 수 있다. 😄

✍️ 이 글은 터미널 밖으로 나온 개발자의 Flutter 여정입니다.

728x90
반응형

'Flutter' 카테고리의 다른 글

Flutter에서 HTTP로 서버 데이터 불러오기 — 작은 연결이 만들어내는 큰 변화  (0) 2025.05.19
Flutter 애니메이션 & 전환 효과 완전 정복 — 감성을 더한 부드러운 움직임 만들기  (0) 2025.05.16
Flutter ListView로 다이나믹 UI 만들기 — 반복되는 위젯을 더 똑똑하게 그리는 법  (0) 2025.05.15
Flutter Provider 완전 정복 — 상태 관리의 정석을 담다  (0) 2025.05.14
Flutter 입문 기록 — 감성과 기능의 균형 속으로  (0) 2025.05.14
'Flutter' 카테고리의 다른 글
  • Flutter에서 HTTP로 서버 데이터 불러오기 — 작은 연결이 만들어내는 큰 변화
  • Flutter 애니메이션 & 전환 효과 완전 정복 — 감성을 더한 부드러운 움직임 만들기
  • Flutter ListView로 다이나믹 UI 만들기 — 반복되는 위젯을 더 똑똑하게 그리는 법
  • Flutter Provider 완전 정복 — 상태 관리의 정석을 담다
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    UI디자인
    rails보안
    flutter기초
    메모앱
    table_calendar
    flutter게시판
    코드를걷는사람
    캘린더앱
    개발블로그
    RubyOnRails
    openweather
    fluttertips
    Nextjs
    flutterui
    ActiveRecord
    감성앱
    모바일앱개발
    UIUX
    날씨앱
    정적사이트
    Firebase
    북마크기능
    flutter개발
    flutter앱개발
    백엔드개발
    다크모드
    Flutter
    flutter상태관리
    flutter디자인
    뉴스앱
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
Flutter에서 화면 전환은 이렇게! – Navigator 완전 정복 🌈
상단으로

티스토리툴바