Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กflutter (25)

lgvv98

[flutter] 19๊ฐ• | ๋นŒ๋” ์œ„์ ฏ ์—†์ด ์Šค๋‚ต๋ฐ” ๋งŒ๋“ค๊ธฐ ๋ฐ ํ† ์ŠคํŠธ ๋ฉ”์‹œ์ง€

โœ… ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์Šค๋‚ต๋ฐ”์™€ ํ† ์ŠคํŠธ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ์Šค๋‚ต๋ฐ”์˜ ๊ฒฝ์šฐ์—๋Š” ํŒจ์น˜๊ฐ•์˜์—์„œ ๋ณด์•˜๋‹ค. ๊ทธ๋ž˜์„œ ScaffoldMessenger๋ฅผ ์ด์šฉํ•ด์„œ ์Šค์Šค๋กœ ๊ฐ•์˜์˜ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์—ˆ์–ด ๊ฐ•์˜์—์„œ๋Š” 2๊ฐœ๋กœ ๋‚˜๋ˆ ์„œ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ScaffoldMessenger์™€ Toast๋ฉ”์‹œ์ง€๋กœ ๋‚˜๋ˆ ์–ด์„œ ๋ฐœํ‘œํ•œ๋‹ค. ํŠนํžˆ, ํ† ์ŠคํŠธ ๋ฉ”์‹œ์ง€ ์ชฝ์—์„œ error๊ฐ€ ์žˆ์—ˆ์–ด์„œ error ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ์ ์–ด๋‘์—ˆ์œผ๋‹ˆ ๊ผญ ๋ณด๊ธฐ โœ… ScaffoldMessenger ์‚ฌ์šฉํ•˜๊ธฐ import 'package:flutter/material.dart'; // ๋ฐ์Šคํฌํƒ‘, ์•ฑ ๋“ฑ์— ๊ณ ๋ฃจ UI๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ตฌ๊ธ€์ด ์ œ๊ณตํ•ด์ฃผ๋Š” ํŒจํ‚ค void main() => runApp(MyApp()); class MyApp extends Stateless..

[flutter] 27๊ฐ•(ํŒจ์น˜๊ฐ•์ขŒ) | ํ”Œ๋Ÿฌํ„ฐ 2.0 ๋ฒ„ํŠผ

โœ… ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๋ฒ„ํŠผ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ์˜ˆ์ •์ด์•ผ. ํŒจ์น˜๊ฐ•์ขŒ๊ฐ€ 1,2๋กœ ์—ฐ์†ํ•ด์„œ ์žˆ์–ด์„œ 18๊ฐ• ์ดํ›„์— ๋“ค์œผ๋ฉด ์ข‹์•„ RaisedButton -> ElevatedButton FlatButton -> TextButton OutlineButton -> OutlinedButton ๊ฐ•์˜๊ฐ€ ๊ธธ์—ˆ์ง€๋งŒ ์ „์ฒด์ ์œผ๋กœ ์–ด๋ ค์šด๊ฑด ์—†์—ˆ์–ด. ๐Ÿ”ธ์ฃผ์š” ํŠน์ด์ ๐Ÿ”ธ - TextButton์—์„œ background์†์„ฑ์ด ์กด์žฌํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฒ„ํŠผ์—๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ๊ฐ€ ์—†์–ด์„œ styleForm์•ˆ์—์„œ color๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. โœ… ์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ ์ดํ•ด import 'package:flutter/material.dart'; // ๋ฐ์Šคํฌํƒ‘, ์•ฑ ๋“ฑ์— ๊ณ ๋ฃจ UI๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ตฌ๊ธ€์ด ์ œ๊ณตํ•ด์ฃผ๋Š” ํŒจํ‚ค void main() => runA..

[flutter] 18(26)๊ฐ• | ํ”Œ๋Ÿฌํ„ฐ 2.0 SnackBar ์™€ ScaffoldMessenger

โœ… ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ํ”Œ๋Ÿฌํ„ฐ 2.0์œผ๋กœ ์ธํ•ด์„œ SnackBar์˜ ์‚ฌ์šฉ์ด ์™„์ „ํžˆ ๋‹ฌ๋ผ์กŒ์–ด. ๊ทธ๋ž˜์„œ 18๊ฐ•์ด ์•ˆ๋˜์„œ 26๊ฐ•์œผ๋กœ ํŒจ์น˜๊ฐ•์ขŒ๋ฅผ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ์—ฌ๊ธฐ๋กœ ๋ณด๊ธฐ! ํ˜น์‹œ๋ผ๋„ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ๋”ฐ๋ผํ•˜๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์ด ์‹œ์ ์—์„œ ํŒจ์น˜๊ฐ•์ขŒ์ชฝ์œผ๋กœ ๊ฑด๋„ˆ ๋›ฐ๋Š”๊ฒƒ์„ ์ถ”์ฒœํ•ด. ๋˜ํ•œ ์ด๋ฒˆ ๊ฐ•์˜๋Š” ์ƒ๋‹นํžˆ ๋ณต์žกํ•œ ๊ฐœ๋…๋“ค๊ณผ ์•ฑ ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•œ ๊ฒƒ๋“ค์ด ๋งŽ์œผ๋ฏ€๋กœ ์ง‘์ค‘ ๊ทธ๋ฆฌ๊ณ  ๋˜ ์ง‘์ค‘ํ•  ๊ฒƒ! ๊ทธ๋ฆฌ๊ณ  ํ”Œ๋Ÿฌํ„ฐ ํ•˜๋ฉด์ „ํ™˜์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋“ค์„ ์—ฟ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ˜ƒ ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ๊ธธ์–ด์„œ ๋‹ค์Œ ํฌ์ŠคํŒ…๊นŒ์ง€ ์ด์–ด์ง‘๋‹ˆ๋‹ค...~~ 1. ScaffoldMessenger class 2. Buttons(TextButton, ElevatedButton, OutlinedButton) 3. Global Key โœ… Why ScaffoldMessger? ์šฐ์„  Sca..

[flutter] 17๊ฐ• | BuildContext ์ดํ•ดํ•˜๊ธฐ

โœ…์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” BuildContext์— ๋Œ€ํ•ด์„œ ๋ณด๊ณ  ๋„˜์–ด๊ฐ€์ž..! BuildContext์˜ ๊ฐœ๋…๊ณผ ์—ญํ• ์€ ์ƒ๋‹นํžˆ ์ค‘์š”ํ•˜๋‚˜, ๊ณต์‹๋ฌธ์„œ์—๋Š” ์ถ”์ƒ์ ์œผ๋กœ ๋‚˜์™€์žˆ๋‹ค. "Scaffold.of() called with a context that does not contain a Scaffold" ๋ผ๋Š” ์—๋Ÿฌ๋ฅผ ์ข…์ข… ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ฐœ๋…๊ณผ ์—ญํ• ์„ ์ •๋ฆฌํ•ด ๋ณด์ž. flutter ๊ณต์‹ ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด BuildContext์˜ ์ •์˜๋ฅผ Dart๋Š” ๋ชจ๋“  ๊ฒƒ์ด ํƒ€์ž…์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. Widget์ด๋ž€ ํƒ€์ž…์˜ build๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด BuildContextํƒ€์ž…์˜ context๋ฅผ ์ธ์ž๊ฐ’์œผ๋กœ ๋ฐ›์•„์˜จ๋‹ค. Scaffold์˜ ์œ„์น˜๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š”๋ฐ, ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ์ฐธ์กฐํ•ด์•ผํ• ๊นŒ? ๋ถ€๋ชจ์˜ context๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋‹ˆ context๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜..

[flutter] 16๊ฐ• | Drawer ๋ฉ”๋‰ด ๋งŒ๋“ค๊ธฐ 2

โœ…์ด๋ฒˆ์‹œ๊ฐ„์—๋Š” ์ง€๋‚œ ์‹œ๊ฐ„์— ์ด์–ด์„œ Drawer ๋ฉ”๋‰ด ๋งŒ๋“ค๊ธฐ 2์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ด. Drawer 1,2๊ฐ€ ๋‚˜๋‰œ ์ด์œ ๋Š”... ๋‚ด๊ฐ€ ์ง€๋‚œ ์‹œ๊ฐ„์— 1๊นŒ์ง€ ๋ฐ–์— ์‹œ๊ฐ„์ด ์•ˆ๋˜์„œ 1๊นŒ์ง€ ๊ณต๋ถ€ํ•˜๊ณ  ํฌ์ŠคํŒ…์„ ํ–ˆ๋Š”๋ฐ ๊ฑฐ๊ธฐ์— 2๋ฅผ ํ•ฉ์น˜๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กœ์›Œ์„œ ๊ทธ๋ƒฅ ๋”ฐ๋กœ ๋ถ„๊ธฐํ•˜๊ธฐ๋กœ ํ•จ..! ์ด๋ฒˆ ์‹œ๊ฐ„ ์ฃผ์š” ๋‚ด์šฉ์€ ์ด๋ ‡๊ฒŒ ๋ผ! โœ…์ฝ”๋“œ๋ฆฌ๋ทฐ ๋ฐ ์ฝ”๋“œ ์„ค๋ช… import 'package:flutter/material.dart'; // ๋ฐ์Šคํฌํƒ‘, ์•ฑ ๋“ฑ์— ๊ณ ๋ฃจ UI๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ตฌ๊ธ€์ด ์ œ๊ณตํ•ด์ฃผ๋Š” ํŒจํ‚ค void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return..