๋งฅ๋ถ ๊ฒ€์€ ํ™”๋ฉด/ํ™”๋ฉด ์•ˆ๋‚˜์˜ด
ยท
๐Ÿ’ป else
๐Ÿ’ป ๋ฌธ์ œ ๋งฅ์œผ๋กœ ๊ณผ์ œ๋ฅผ ํ•˜๋˜ ์ค‘ ๊ฐ‘์ž๊ธฐ ๋งฅ์ด ๊บผ์ง€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ์–ด๋А ์ˆœ๊ฐ„ ๋ ‰์ด ๋ฐœ์ƒํ•˜๋”๋‹ˆ, ์•„์˜ˆ ๊ฒ€์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๋‹ค. ๋„ˆ๋ฌด ๋‹นํ™ฉํ•ด์„œ ์ผ๋‹จ ์ „์› ๋ฒ„ํŠผ์„ ๊ธธ๊ฒŒ ๋ˆŒ๋Ÿฌ ๊ฐ•์ œ ์ข…๋ฃŒ ํ›„, 20๋ถ„์ •๋„ ๊ธฐ๋‹ค๋ฆฐ ๋’ค ๋‹ค์‹œ ์ „์›์„ ์ผฐ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ๊ฒ€์€ ํ™”๋ฉด์ด์—ˆ๋‹ค. ํœด๋Œ€ํฐ์œผ๋กœ ๊ฒ€์ƒ‰ํ•œ ๊ฒฐ๊ณผ, ์ปดํ“จํ„ฐ ๋ถ€ํŒ…์ด๋‚˜, off๋˜๋Š” ๊ณผ์ •์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด ๊ผฌ์—ฌ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ๐Ÿ’ป ํ•ด๊ฒฐ๋ฐฉ๋ฒ• Control + option + shift + ์ „์› option + command + p + r ์ด๋ ‡๊ฒŒ ์ˆœ์„œ๋Œ€๋กœ ๋™์‹œ์— ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๊ฐ‘์ž๊ธฐ ํ™”๋ฉด์ด ์•„์ฃผ ์‚ด์ง ๋ฒˆ์ฉ ํ•˜๋ฉฐ ์žฌ๋ถ€ํŒ… ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ๊ณ  ์‚ฌ์ดํŠธ : https://m.blog.naver.com/teddyjun/220333615605
Padding class
ยท
๐Ÿ’ง flutter
Padding class ์ •ํ•ด์ง„ padding์— ๋งž์ถฐ child๋ฅผ ๋„ฃ๋Š” ์œ„์ ฏ์ด๋‹ค. ์œ„ ์‚ฌ์ง„์€ ๊ณต๊ฐ„์ด ์ „ํ˜€ ์—†์–ด ๋‹ต๋‹ตํ•ด ๋ณด์ด์ง€ ์•Š์€๊ฐ€? ๊ฐ๊ฐ์˜ ์‚ฌ๊ฐํ˜• ์‚ฌ์ด์— ๊ณต๊ฐ„์„ ์กฐ๊ธˆ ๋‘๋ฉด ์–ด๋–จ๊นŒ? ์ด๋ ‡๊ฒŒ ๊ณต๊ฐ„ ์ฆ‰ ์—ฌ๋ฐฑ์ด ํ•„์š”ํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” padding ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. Padding ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์€ padding ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฐ„์„ ๋งŒ๋“  ๊ฒฐ๊ณผ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด padding์€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ๊นŒ? ์ด๋ ‡๊ฒŒ ์–ด๋А ๋ถ€๋ถ„์— ์–ผ๋งˆ๋‚˜ ๊ณต๊ฐ„์„ ๋‘˜ ๊ฒƒ์ธ์ง€ ์ •ํ•˜๊ณ , padding์ด ์ ์šฉ๋  child๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. padding์„ ์ฃผ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๋‹ค. ์ด๋Š” EdgeInsets์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ฐฉ๋ฒ•์ด ๋‚˜๋‰œ๋‹ค. 1. EdgeInsets.fromLTRB() LTRB๋Š” ์ˆœ์„œ๋Œ€๋กœ Left,..
[Flutter] Expanded class
ยท
๐Ÿ’ง flutter
Expanded class ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๋„๋ก Row, Column, ๋˜๋Š” Flex์˜ child๋ฅผ ํ™•์žฅ์‹œํ‚จ๋‹ค. Expanded ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋ฉด Row, Column ๋˜๋Š” Flex์˜ child๊ฐ€ main axis(์ถ•)์„ ๋”ฐ๋ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๋„๋ก ํ™•์žฅ๋œ๋‹ค. Row์ด๋ฉด ๊ฐ€๋กœ Column์ด๋ฉด ์„ธ๋กœ Expanded ์œ„์ ฏ์€ Row, Column ๋˜๋Š” Flex์˜ ์ž์†์ด์–ด์•ผ ํ•œ๋‹ค. StatelessWidget ๋˜๋Š” StatefulWidget์ด์–ด์•ผ ํ•œ๋‹ค. example) example_Column) ์œ„ ์˜ˆ์‹œ๋Š” ์ค‘๊ฐ„ child๋ฅผ ์„ธ๋กœ์ถ•์— ๋งž์ถฐ ํ™•์žฅ์‹œํ‚จ ๊ฒฐ๊ณผ์ด๋‹ค. example_Row) ์œ„ ์˜ˆ์‹œ๋Š” flex๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ค‘๊ฐ„ child๋ฅผ ์ œ์™ธํ•œ child๋ฅผ ๊ฐ€๋กœ์ถ•์— ๋งž์ถฐ ํ™•์žฅ์‹œํ‚จ ๊ฒฐ๊ณผ์ด๋‹ค.
[Flutter] Transform class ์ •๋ฆฌ
ยท
๐Ÿ’ง flutter
Transform class transform class๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋ณธ ์œ„์ ฏ๋“ค ์ค‘ ๊ฐ€์žฅ ์žฌ๋ฐŒ๊ณ  ์‹ ๊ธฐํ•˜๊ฒŒ ๋‹ค๊ฐ€์™”๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ํŒŒ์›Œํฌ์ธํŠธ๋‚˜, ์˜์ƒ, ์•ฑ ์‚ฌ์šฉ ์ค‘ ๋ดค์„ ๋ฒ•ํ•œ ๊ธฐ๋Šฅ๋“ค์ด transform ์œ„์ ฏ์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๋‹ค. ์•„๋ž˜ ์ฒจ๋ถ€ํ•œ ์˜์ƒ์„ ๋ณด๋ฉด ๋‚˜๋„ ๋ชจ๋ฅด๊ฒŒ '์šฐ์™€' ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. transform์—๋Š” ์ •๋ง ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘ 3๊ฐœ์˜ ๊ธฐ๋Šฅ์„ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค. 1. Transform.rotate child๋ฅผ ์›ํ•˜๋Š” ๊ฐ์œผ๋กœ ํšŒ์ „ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 2. Transform.scale child์˜ ํฌ๊ธฐ๋ฅผ ์›ํ•˜๋Š” ํฌ๊ธฐ๋กœ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 3. Transform.translate child์˜ ์œ„์น˜๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์™ธ์—๋„ skew, 3D perspective ๋“ฑ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ๋ณธ ๊ฒฝํ—˜์ด ..
[Flutter] SizedOverflowBox class ์ •๋ฆฌ
ยท
๐Ÿ’ง flutter
SizedOverflowBox class overflowBox์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. overflowBox์™€ ๋‹ค๋ฅธ ์ ์€ constraint๋ฅผ ๋”ฐ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  ์ด์ „์— ์„ค์ •๋œ parent์˜ constraint๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. SizedOverflowBox๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด parent๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋œ constraint๋ฅผ ๋ฒ—์–ด๋‚œ box๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. example) out put)
[Flutter] OverflowBox class ์ •๋ฆฌ
ยท
๐Ÿ’ง flutter
OverflowBox class ์ด ์œ„์ ฏ์€ parent๋กœ๋ถ€ํ„ฐ child์—๊ฒŒ ๊ฐ๊ฐ ๋‹ค๋ฅธ constraints๋ฅผ ๋ถ€๊ณผํ•˜์—ฌ child๊ฐ€ parent๋ฅผ overflow(๋„˜์น˜๊ฒŒ. ์ฆ‰ ๋” ํฌ๊ฒŒ) ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. overflowBox๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด parent์—์„œ ์ œ์‹œ๋œ constraint๋ฅผ ๋ฒ—์–ด๋‚  ์ˆ˜ ์—†๋‹ค. ํ•˜์ง€๋งŒ overflowBox๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด parent๋ฅผ ๋ฒ—์–ด๋‚œ constraint๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•œ constraint ์•ˆ์—์„œ parent๋ฅผ ๋ฒ—์–ด๋‚œ box๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. example) out put)
[Flutter] Offstage class ์ •๋ฆฌ
ยท
๐Ÿ’ง flutter
Offstage class offstage class๋Š” ๋ง ๊ทธ๋Œ€๋กœ stage์—์„œ off(๋ฒ—์–ด๋‚œ๋‹ค)ํ•œ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ–ˆ๋‹ค. offstage class๋Š” navigator์™€ ๋น„์Šทํ•˜๊ฒŒ ํŽ˜์ด์ง€๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค. ํ•˜์ง€๋งŒ, ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ํŠน์ง•์ด์ž ์žฅ์ ์ด ์žˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ํŠน์ง•์€ ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” ๋ณด์ด์ง€ ์•Š์ง€๋งŒ offstage ์ƒํƒœ์—์„œ๋„ ๊ณ„์† ์‹คํ–‰๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ ๋ˆˆ์— ๋ณด์ด๋А๋ƒ ์•ˆ๋ณด์ด๋А๋ƒ์˜ ์—ฌ๋ถ€์— ๊ด€๊ณ„ ์—†์ด ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ์†Œ์š”๋œ๋‹ค. ์ด์ œ offstage์— ๋Œ€ํ•ด ๋” ์ž์„ธํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค. ์ „์ฒด ์ฝ”๋“œ๋Š” ์•„๋ž˜ ๋งํฌ๋กœ ๋‘์—ˆ์œผ๋‹ˆ ์ „์ฒด ์ฝ”๋“œ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๋“ค์–ด๊ฐ€๊ธธ ๋ฐ”๋ž€๋‹ค. offstage๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋จผ์ € true๋กœ ๊ฐ’์„ ์„ค์ •ํ•ด์ค€๋‹ค. bool _offstage = true; of..
[Flutter] LimitedBox class ์ •๋ฆฌ
ยท
๐Ÿ’ง flutter
LimitedBox class ์ด ์œ„์ ฏ์€ child์— ๋Œ€ํ•œ ์ œํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ์— ๋ฐ•์Šค๋ฅผ ์ œํ•œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„ ์ƒ์œ„ ์š”์†Œ์—์„œ ์ •์˜๋œ ์ œํ•œ์— ๋”ฐ๋ผ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง„๋‹ค. ํ•˜์ง€๋งŒ ListView, Column, Row์™€ ๊ฐ™์€ ๊ฒฝ์šฐ, ํ•˜์œ„์š”์†Œ ํฌ๊ธฐ์— ์ œํ•œ์„ ๋‘์ง€ ์•Š๋Š”๋‹ค. ์ด์ฒ˜๋Ÿผ ์ƒ์œ„ ์š”์†Œ์˜ ์ œํ•œ์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ, ์ƒ์œ„ ์š”์†Œ ์ œํ•œ์— ์˜์กดํ•˜๋Š” ์œ„์ ฏ์—๋Š” ์–ด๋–ป๊ฒŒ ๊ธฐ๋ณธ๊ฐ’์„ ์ค„ ์ˆ˜ ์žˆ์„๊นŒ? ์ด๋Ÿฐ ๊ฒฝ์šฐ์— LimitedBox๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค! LimitedBox๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด maxHeight์™€ maxWidth๊ฐ€ ์ œ๊ณต๋œ๋‹ค. ์ด๋Š” child์—๊ฒŒ ๋ฌดํ•œํ•œ ์ƒํ™ฉ์—์„œ ์ž์—ฐ์Šค๋Ÿฌ์šด ํฌ๊ธฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค. ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ  ์ •๋ฆฌํ•ด๋ณด๋ฉด, ๋งŒ์•ฝ ์œ„์ ฏ์˜ ์ตœ๋Œ€ ๋„ˆ๋น„๊ฐ€ ์ œํ•œ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ด ์œ„์ ฏ์˜ child์˜ ๋„ˆ๋น„๋Š” maxWidth์— ๋”ฐ๋ผ ์ œํ•œ๋œ..
[Flutter] IntrinsicWidth class ์ •๋ฆฌ
ยท
๐Ÿ’ง flutter
IntrinsicWidth class ๋ฐ”๋กœ ์ด์ „์— IntrinsicHeight class์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์—ˆ๋‹ค. height๊ฐ€ ์žˆ์œผ๋‹ˆ width๋„ ์กด์žฌํ•œ๋‹ค. IntrinsicHeight class์™€ ๊ฑฐ์˜ ๋น„์Šทํ•œ ๋‚ด์šฉ์ด๋‹ค. ์œ„ ์„ค๋ช…์—์„œ height๋ฅผ width๋กœ ๋ฐ”๊ฟ”์„œ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ์ด ์œ„์ ฏ์€ ๋„ˆ๋น„๊ฐ€ ์ œํ•œ๋˜์ง€ ์•Š๊ณ  ๋ฌดํ•œ ํ™•์žฅ์„ ์‹œ๋„ํ•˜๋Š” child๋ฅผ ํ•„์š”๋กœ ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด ์œ„์ ฏ์ด child์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” constraints๋Š” ๋ถ€๋ชจ์˜ constraints๋ฅผ ์ง€ํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ constraints๊ฐ€ child์˜ ์ตœ๋Œ€ ๊ณ ์œ  ๋†’์ด๋ฅผ ํฌํ•จํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฌ์ง€ ์•Š์œผ๋ฉด ๋น„๊ต์  ๋‚ฎ์€ ๋†’์ด๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ๋ฐ˜๋Œ€๋กœ, ์ตœ์†Œ ๋†’์ด constraints๊ฐ€ child์˜ ์ตœ๋Œ€ ๊ณ ์œ  ๋†’์ด๋ณด๋‹ค ํฌ๋ฉด ๋น„๊ต์  ๋” ๋งŽ์€ ๋†’์ด๊ฐ€ ์ง€์ •๋œ๋‹ค. ..
[Flutter] IntrinsicHeight class ์ •๋ฆฌ
ยท
๐Ÿ’ง flutter
IntrinsicHeight class ์ด๋ฆ„์„ ๋ณด์ž๋งˆ์ž Intrinsic์ด ๋ฌด์Šจ ์˜๋ฏธ์ง€? ํ•˜๋Š” ์งˆ๋ฌธ์ด ์ƒ๊ฒผ๋‹ค. ์ฐพ์•„๋ณด๋‹ˆ Intrinsic๋Š” ๊ณ ์œ ํ•œ, ๋ณธ์งˆ์ ์ธ ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๋œป ๊ทธ๋Œ€๋กœ IntrinsicHeight๋Š” child์˜ ๊ณ ์œ  ๋†’์ด์— ๋งž์ถฐ child์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ์œ„์ ฏ์ด๋‹ค. ์ด ์œ„์ ฏ์€ ๋†’์ด๊ฐ€ ์ œํ•œ๋˜์ง€ ์•Š๊ณ  ๋ฌดํ•œ ํ™•์žฅ์„ ์‹œ๋„ํ•˜๋Š” child๋ฅผ ํ•„์š”๋กœ ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด ์œ„์ ฏ์ด child์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” constraints๋Š” ๋ถ€๋ชจ์˜ constraints๋ฅผ ์ง€ํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ constraints๊ฐ€ child์˜ ์ตœ๋Œ€ ๊ณ ์œ  ๋†’์ด๋ฅผ ํฌํ•จํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํฌ์ง€ ์•Š์œผ๋ฉด ๋น„๊ต์  ๋‚ฎ์€ ๋†’์ด๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ๋ฐ˜๋Œ€๋กœ, ์ตœ์†Œ ๋†’์ด constraints๊ฐ€ child์˜ ์ตœ๋Œ€ ๊ณ ์œ  ๋†’์ด๋ณด๋‹ค ํฌ๋ฉด ๋น„๊ต์  ๋” ๋งŽ์€ ๋†’์ด๊ฐ€ ์ง€์ •๋œ..