์žฌ๋ฐŒ๋Š”๊ฑฐ๐ŸŒˆ

Flutter_08. AlertDialog, Navigator, Routing, PushNamed ๋ณธ๋ฌธ

๊ฐœ๋ฐœํ•˜๊ธฐ/Flutter Start

Flutter_08. AlertDialog, Navigator, Routing, PushNamed

uraon 2023. 5. 3. 19:30
728x90
๋ฐ˜์‘ํ˜•

Flutter๋Š” ํ™”๋ฉด ๊ฐ„ ํƒ์ƒ‰ ๋ฐ ๋”ฅ ๋งํฌ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์™„์ „ํ•œ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

๋‚ด๋น„๊ฒŒ์ด์…˜๊ณผ ๋ผ์šฐํ„ฐ๋ฅผ ์ด์šฉํ•œ ํ™”๋ฉด ์ด๋™์„ ๋ณต์Šตํ•ด๋ณด๊ฒ ๋‹ค :) ์ž์„ธํ•œ ๋‚ด์šฉ ๋ฐ ์ถ”๊ฐ€์ ์ธ ๋ ˆ์‹œํ”ผ๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธ!

 

https://docs.flutter.dev/ui/navigation

 

Navigation and routing

Overview of Flutter's navigation and routing features

docs.flutter.dev

 

https://docs.flutter.dev/cookbook#navigation

 

Cookbook

The Flutter cookbook provides recipes for many commonly performed tasks.

docs.flutter.dev

 

 

 

 

GestureDetector, onTap, AlertDialog

 

 

 

1) lib์— ํด๋” ๋งŒ๋“ค๊ณ , dart ํŒŒ์ผ ์‹ ๊ทœ ์ƒ์„ฑ - ๊ธฐ๋ณธ ํ™”๋ฉด ์…‹ํŒ…

 

 

2) body์— GestureDetector ์ถ”๊ฐ€

GestureDetector
- onTap: () => ํ˜ธ์ถœํ•  ํ•จ์ˆ˜
- child: cont Text('์ถœ๋ ฅํ•  ๋ฌธ๊ตฌ')

 

 

3) AlertDialog ํ•จ์ˆ˜ ์ƒ์„ฑํ•˜๊ณ  showDialog();

_showAlertDialog(BuilderContext context){}
- showDialog(context: context, builder: builder);

 

 

4) builder์— return AlertDialog();

showDialog();
- context: context
- builder: (BuildContext ctx){
      return AlertDialog();
   }

 

 

5) AlertDialog ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ ์…‹ํŒ…

AlertDialog();
- ์นผ๋ผ backgroundColor: const Colors.์›ํ•˜๋Š”์นผ๋ผ
- ์ œ๋ชฉ title: const Text('๋‹ค์ด์–ด๋กœ๊ทธ ์ œ๋ชฉ ๋ฌธ๊ตฌ')
- ๋‚ด์šฉ content: const Text('๋‹ค์ด์–ด๋กœ๊ทธ ๋‚ด์šฉ ๋ฌธ๊ตฌ')
- ๋ฒ„ํŠผ actions: [๋ฒ„ํŠผ, ๋ฒ„ํŠผ, ...]

 

 

6) AlertDialog ๋ฒ„ํŠผ ์…‹ํŒ…

actions: []
- Center > Row > TextButton

 

 

7) ์ €์žฅํ•˜๊ณ  AlertDialog ์ถœ๋ ฅ ํ™•์ธ

๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์•„๋ฌด๋Ÿฐ ์ด๋ฒคํŠธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—, [์˜ˆ][์•„๋‹ˆ์š”] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด๋„ AlertDialog๊ฐ€ ๋‹ซํžˆ์ง€ ์•Š์Œ

 

 

8) ๋ฒ„ํŠผ์— Navigator pop() ์ถ”๊ฐ€

 

 

 

9) ์ €์žฅํ•˜๊ณ  AlertDialog ์ถœ๋ ฅ ๋ฐ ๋‹ซํž˜ ํ™•์ธ

 

 

 

10) showDialog์— barrierDismissible์™€ barrierColor ์„ค์ •

showDialog();
- barrierDismissible: true //Alert ์™ธ ์˜์—ญ ํ„ฐ์น˜์‹œ ๋‹ซ๊ธฐ ํ—ˆ์šฉ 
- barrierColor  //Alert ์ถœ๋ ฅ์‹œ BG์นผ๋ผ 
- context: context
- builder: (BuildContext ctx){
      return AlertDialog();
   }

 

 

11) Command + S ๋˜๋Š” โšก๏ธ ์•„์ด์ฝ˜ ๋ฒ„ํŠผ ํด๋ฆญํ•˜์—ฌ ํ™”๋ฉด ํ™•์ธ

 

 

 

 

 

 

 

 

 

Page, Routing, Navigator, PushNamed

 

 

 

1) main.dart ํŒŒ์ผ์— Routing ์…‹ํŒ…

 

2) ๋ณ„๋„ page ํŒŒ์ผ 2๊ฐœ ์ƒ์„ฑํ•˜๊ณ  ๊ธฐ๋ณธ ์…‹ํŒ…

//appBar ํƒ€์ดํ‹€๊ณผ body์— ํ…์ŠคํŠธ ๋ฌธ๊ตฌ๋งŒ ๋‹ค๋ฅด๊ณ  ๋™์ผ ์ฝ”๋“œ

 

3) main.dart ํŒŒ์ผ์— ์ƒ์„ฑํ•œ 2๊ฐœ ํŽ˜์ด์ง€ Routing ์…‹ํŒ…

 

 

4) home.dart ํŒŒ์ผ์— AlertDialog ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์ด๋ฒคํŠธ๋กœ ํŽ˜์ด์ง€ ์ด๋™ pushNamed ์„ค์ • 

Navigator.of(ctx).pop();
Navigator.pushNamed
(context, '/1st');

 

 

5) ์ €์žฅํ•˜๊ณ , ํŽ˜์ด์ง€ ์ด๋™ ํ™•์ธ

 

 

 

 

๋ฐ˜์‘ํ˜•

 

728x90
๋ฐ˜์‘ํ˜•