-
Navigator.pushNamed() 다중 화면 전환프로그래밍 공부 메모/flutter 2022. 5. 29. 22:26
1. initalRoute / routes 속성 값을 꼭 사용 해야함
2. 웹사이트 주소 체계와 유사함 ( map 값으로 표현)

[앱 실행후 route 설정 코드]
import 'package:flutter/material.dart'; import 'package:flutter_application_2/ScreenB.dart'; import 'package:flutter_application_2/ScreenC.dart'; import 'ScreenA.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData( primarySwatch: Colors.blue, ), initialRoute: '/', //initialRoute ->다중 페이지 이동시 첫번째 페이지가 무엇인지 알려주기 위한 속성값 routes: { // 다중 페이지 이동시 initialRoute, routes 속성을 꼭 사용해야 한다 // 웹사이트 주소 체계와 유사함 '/': (context) => ScreenA(), // '/' 웹사이트 접속시 첫번째로 실행되는 index 파일과 같음 '/b': (context) => ScreenB(), '/c': (context) => ScreenC(), }, ); } }[첫 스크린 코드]
import 'package:flutter/material.dart'; import 'package:flutter/src/foundation/key.dart'; import 'package:flutter/src/widgets/framework.dart'; class ScreenA extends StatelessWidget { const ScreenA({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('screen A'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ ElevatedButton( onPressed: () { Navigator.pushNamed(context, '/b'); //pushNamed -> 각 페이지 붙여진 이름을 통해 push하여 화면 전환을 한다는 의미 }, child: Text('Go to Screen B')), ElevatedButton( onPressed: () { Navigator.pushNamed(context, '/c'); }, child: Text('Go to Screen C')), ], ), ), ); } }반응형'프로그래밍 공부 메모 > flutter' 카테고리의 다른 글
TestFild + GestureDetector 위젯 (0) 2022.06.01 ScaffoldMessenger (아직 잘 모르는 내용 보충 필요) + SnackBar (0) 2022.05.30 Navigator 다루기 push(), pop() 화면 전환 (0) 2022.05.29 BuildContext / Snack Bar 자세히는 모름... (0) 2022.05.27 class 다루기 #9 Generic (0) 2022.05.19