Flutter (with 코딩셰프)
[2023.11.28] 플러터(flutter) 순한 맛 강좌 23 | Navigator.pushNamed
8888888888
2023. 11. 28. 01:01
<< 소스 코드 - main.dart >>
import 'package:example_pjt/ScreenB.dart';
import 'package:example_pjt/ScreenC.dart';
import 'package:flutter/material.dart';
import 'package:example_pjt/ScreenA.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
//home: ScreenA(),
initialRoute: '/', //반드시 최초는 '/'로 지정해야함.
routes: {
//route의 명은 '/'로 시작해야함.
'/': (context) => ScreenA(), // '/'값이 눌러지면 ScreenA로 이동
'/b': (context) => ScreenB(),
'/c': (context) => ScreenC()
},
);
}
}
<< 소스 코드 - ScreenA.dart >>
import 'package:flutter/material.dart';
class ScreenA extends StatelessWidget {
const ScreenA({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('ScreenA'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: (){
Navigator.pushNamed(context, '/b');
},
child: Text('Go to ScreenB'),
),
ElevatedButton(
onPressed: (){
Navigator.pushNamed(context, '/c');
},
child: Text('Go to ScreenC'),
),
],
),
),
);
}
}
<< 소스 코드 - ScreenB.dart >>
import 'package:flutter/material.dart';
class ScreenB extends StatelessWidget {
const ScreenB({Key? key}) : super(key: key);
@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 {
const ScreenC({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('ScreenC'),
),
body: Center(
child: Text(
'ScreenC',
style: TextStyle(
fontSize: 24.0
),
),
),
);
}
}
<< 출력 화면 >>