name27 / flutter

0 stars 0 forks source link

Navigation #43

Open name27 opened 1 year ago

name27 commented 1 year ago

MaterialApp은 따로 빼놓고 최상단 위젯이 Scaffold(다른 페이지 라우팅하려면)인 페이지들을 연결 Scaffold 단위를 Page로 생각 페이지를 하나 더 만든다면 Scaffold를 최상위로 올림 Routing하는 방법은 Navigation 활용

Navigation


import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}
class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SecondPage(),
    );
  }
}

class FirstPage extends StatelessWidget {
  const FirstPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        automaticallyImplyLeading: false,  //기본값 true 자동 뒤로가기 버튼
      ),
      body: TextButton(
        onPressed: (){
          Navigator.pop(context);
        },
        child: Text('A')
      ),
    );
  }
}

class SecondPage extends StatelessWidget {
  const SecondPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.amber,
      ),
      body: Text('B'),
      floatingActionButton: FloatingActionButton(
        onPressed: (){
          Navigator.push(
            context, //context - 현재 위젯 상태
            MaterialPageRoute(builder: (context) => FirstPage()),
          );
        }
      ),
    );
  }
}