멀티페이지 구현방법
main.dart
| import 'package:flutter/material.dart'; |
| import 'ScreenA.dart'; |
| import 'ScreenB.dart'; |
| import 'ScreenC.dart'; |
| |
| void main() => runApp(MyApp()); |
| |
| class MyApp extends StatelessWidget { |
| @override |
| Widget build(BuildContext context) { |
| return MaterialApp( |
| initialRoute: '/', |
| routes: { |
| '/': (context) => ScreenA(), |
| '/b': (context) => ScreenB(), |
| '/c': (context) => ScreenC() |
| }, |
| ); |
| } |
| } |
ScreenA.dart
| import 'package:flutter/material.dart'; |
| |
| class ScreenA extends StatelessWidget { |
| @override |
| Widget build(BuildContext context) { |
| return Scaffold( |
| appBar: AppBar( |
| title: Text('ScreenA'), |
| ), |
| body: Center( |
| child: Column( |
| mainAxisAlignment: MainAxisAlignment.center, |
| children: [ |
| ElevatedButton( |
| child: Text('Go to ScreenB'), |
| onPressed: () { |
| Navigator.pushNamed(context, '/b'); |
| }), |
| ElevatedButton( |
| child: Text('go to ScreenC'), |
| onPressed: () { |
| Navigator.pushNamed(context, '/c'); |
| }), |
| ], |
| ), |
| ), |
| ); |
| } |
| } |
ScreenB.dart
| import 'package:flutter/material.dart'; |
| |
| class ScreenB extends StatelessWidget { |
| @override |
| Widget build(BuildContext context) { |
| return Scaffold( |
| appBar: AppBar( |
| title: Text('ScreenB'), |
| ), |
| body: Center( |
| child: Text( |
| 'ScreenB', |
| style: TextStyle(fontSize: 24.0), |
| ), |
| ), |
| ); |
| } |
| } |
ScreenC.dart
| import 'package:flutter/material.dart'; |
| |
| class ScreenC extends StatelessWidget { |
| @override |
| Widget build(BuildContext context) { |
| return Scaffold( |
| appBar: AppBar( |
| title: Text('ScreenC'), |
| ), |
| body: Center( |
| child: Text( |
| 'ScreenC', |
| style: TextStyle(fontSize: 24.0), |
| ), |
| ), |
| ); |
| } |
| } |
동작화면

댓글