Search

๋ ˆ์ด์•„์›ƒ ์œ„์ ฏ

๋ ˆ์ด์•„์›ƒ ์œ„์ ฏ

โ€ข
Container
โ€ข
Row
โ€ข
Column
โ€ข
Expanded
โ€ข
Stack
โ€ข
Center
โ€ข
Align
โ€ข
SizedBox
โ€ข
Padding
โ€ข
ListView
โ€ข
GridView
โ€ข
Card

Container

1 ๊ฐœ์˜ ์ž์‹ ์œ„์ ฏ์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ•์Šค ํ˜•ํƒœ์˜ ์œ„์ ฏ

๋ฌธ๋ฒ•

Container( width: ๊ฐ€๋กœ ํฌ๊ธฐ height: ์„ธ๋กœ ํฌ๊ธฐ color: ๋ฐฐ๊ฒฝ์ƒ‰ margin: ์™ธ๋ถ€ ์—ฌ๋ฐฑ padding: ๋‚ด๋ถ€ ์—ฌ๋ฐฑ child: ์ž์‹ ์œ„์ ฏ decoration: ๋ฐ•์Šค ์Šคํƒ€์ผ )
Dart
๋ณต์‚ฌ
์†์„ฑ
์„ค๋ช…
ํด๋ž˜์Šค
width
์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ€๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
double
height
์ปจํ…Œ์ด๋„ˆ์˜ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
double
color
์ปจํ…Œ์ด๋„ˆ์˜ ๋ฐฐ๊ฒฝ์ƒ‰์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
Color
margin
์ปจํ…Œ์ด๋„ˆ์˜ ์™ธ๋ถ€ ์—ฌ๋ฐฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
EdgeInsets
padding
์ปจํ…Œ์ด๋„ˆ์˜ ๋‚ด๋ถ€ ์—ฌ๋ฐฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
EdgeInsets
child
์ปจํ…Œ์ด๋„ˆ ๋‚ด์— ๋ฐฐ์น˜๋  ์ž์‹ ์œ„์ ฏ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
Widget
decoration
์ปจํ…Œ์ด๋„ˆ์˜ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
BoxDecoration

์˜ˆ์‹œ

Container( width: 200.0, // ๊ฐ€๋กœ ํฌ๊ธฐ (์˜ต์…˜) height: 100.0, // ์„ธ๋กœ ํฌ๊ธฐ (์˜ต์…˜) color: Colors.blue, // ๋ฐฐ๊ฒฝ์ƒ‰ margin: EdgeInsets.all(16.0), // ์™ธ๋ถ€ ์—ฌ๋ฐฑ padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0), // ๋‚ด๋ถ€ ์—ฌ๋ฐฑ child: Text('Hello, Container!'), // ์ž์‹ ์œ„์ ฏ )
Dart
๋ณต์‚ฌ

Color

ํ”Œ๋Ÿฌํ„ฐ์—์„œ ์ƒ‰์ƒ์„ ํ‘œํ˜„ํ•˜๋Š” ํด๋ž˜์Šค
โ€ข
์ •์  ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ‰์ƒ ์ƒ์„ฑ
โ€ข
๋ฏธ๋ฆฌ ์ •์˜๋œ ์ƒ‰์ƒ ์‚ฌ์šฉ

์ •์  ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ‰์ƒ ์ƒ์„ฑ

Color myColor = Color.fromRGBO(255, 0, 0, 1.0); // ๋นจ๊ฐ„์ƒ‰
Dart
๋ณต์‚ฌ

๋ฏธ๋ฆฌ ์ •์˜๋œ ์ƒ‰์ƒ ์‚ฌ์šฉ

Color myColor = Colors.blue; // ํŒŒ๋ž€์ƒ‰
Dart
๋ณต์‚ฌ

EdgeInsets

ํ”Œ๋Ÿฌํ„ฐ์—์„œ ์—ฌ๋ฐฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํด๋ž˜์Šค
์ฃผ๋กœ, Container์˜ margin์ด๋‚˜ padding ์†์„ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ข…๋ฅ˜

์ƒ์„ฑ์ž ๋ฐ ๋ฉ”์†Œ๋“œ
์„ค๋ช…
EdgeInsets.all(double)
๋ชจ๋“  ๋ฐฉํ–ฅ์— ๋™์ผํ•œ ์—ฌ๋ฐฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
EdgeInsets.fromLTRB(left, top, right, bottom)
์ขŒ, ์ƒ, ์šฐ, ํ•˜์— ๊ฐ๊ฐ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
EdgeInsets.symmetric({vertical, horizontal})
์ƒํ•˜, ์ขŒ์šฐ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
EdgeInsets.only({left, top, right, bottom})
๊ฐ ๋ฐฉํ–ฅ๋ณ„๋กœ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

1.
๋ชจ๋“  ๋ฐฉํ–ฅ์— ๋™์ผํ•œ ์—ฌ๋ฐฑ ์ง€์ •:
EdgeInsets.all(16.0) // ๋ชจ๋“  ๋ฐฉํ–ฅ์— 16.0์˜ ์—ฌ๋ฐฑ
Dart
๋ณต์‚ฌ
2.
์ƒํ•˜์ขŒ์šฐ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ ์ง€์ •:
EdgeInsets.fromLTRB(10.0, 20.0, 30.0, 40.0) // ์ขŒ, ์ƒ, ์šฐ, ํ•˜์— ๊ฐ๊ฐ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ
Dart
๋ณต์‚ฌ
3.
์ƒํ•˜, ์ขŒ์šฐ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ ์ง€์ •:
EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0) // ์ƒํ•˜, ์ขŒ์šฐ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ
Dart
๋ณต์‚ฌ
4.
๊ฐ ๋ฐฉํ–ฅ๋ณ„๋กœ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ ์ง€์ •:
EdgeInsets.only(top: 10.0, bottom: 20.0, left: 30.0, right: 40.0) // ๊ฐ ๋ฐฉํ–ฅ
Dart
๋ณต์‚ฌ

maring, padding ์ ์šฉํ•˜๊ธฐ

Container( margin: EdgeInsets.all(16.0), // ๋ชจ๋“  ๋ฐฉํ–ฅ์— 16.0์˜ ์—ฌ๋ฐฑ padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0), // ์ƒํ•˜, ์ขŒ์šฐ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์—ฌ๋ฐฑ child: Text('Hello, EdgeInsets!'), )
Dart
๋ณต์‚ฌ

BoxDecoration

์ƒ์ž ๋ชจ์–‘์˜ ์žฅ์‹์„ ์ง€์ •ํ•˜๋Š” ํด๋ž˜์Šค
Container์˜ decoration ์†์„ฑ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
์†์„ฑ
์„ค๋ช…
color
์ƒ์ž์˜ ๋ฐฐ๊ฒฝ์ƒ‰์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
border
์ƒ์ž์˜ ํ…Œ๋‘๋ฆฌ(๊ฒฝ๊ณ„์„ )์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
borderRadius
์ƒ์ž์˜ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
boxShadow
์ƒ์ž์— ๊ทธ๋ฆผ์ž๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
gradient
์ƒ์ž์˜ ๋ฐฐ๊ฒฝ์— ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
image
์ƒ์ž์˜ ๋ฐฐ๊ฒฝ์— ์ด๋ฏธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
1. ๊ธฐ๋ณธ ์‚ฌ์šฉ:
BoxDecoration( color: Colors.blue, // ๋ฐฐ๊ฒฝ์ƒ‰ border: Border.all(color: Colors.red, width: 2.0), // ๊ฒฝ๊ณ„์„  borderRadius: BorderRadius.circular(12.0), // ๋ชจ์„œ๋ฆฌ์˜ ๋ฐ˜๊ฒฝ )
Dart
๋ณต์‚ฌ
2. ๊ทธ๋ฆผ์ž ์ถ”๊ฐ€:
BoxDecoration( color: Colors.blue, // ๋ฐฐ๊ฒฝ์ƒ‰ border: Border.all(color: Colors.red, width: 2.0), // ๊ฒฝ๊ณ„์„  borderRadius: BorderRadius.circular(12.0), // ๋ชจ์„œ๋ฆฌ์˜ ๋ฐ˜๊ฒฝ boxShadow: [ BoxShadow( color: Colors.grey, offset: Offset(2.0, 2.0), // ๊ทธ๋ฆผ์ž์˜ ์œ„์น˜ blurRadius: 5.0, // ๊ทธ๋ฆผ์ž์˜ ํ๋ฆผ ์ •๋„ ), ], )
Dart
๋ณต์‚ฌ
3. ๊ทธ๋ผ๋””์–ธํŠธ ์ถ”๊ฐ€:
BoxDecoration( gradient: LinearGradient( begin: Alignment.topLeft, end: Alignment.bottomRight, colors: [Colors.blue, Colors.red], // ๊ทธ๋ผ๋””์–ธํŠธ ์ƒ‰์ƒ ), )
Dart
๋ณต์‚ฌ
4. ์ด๋ฏธ์ง€ ๋ฐฐ๊ฒฝ ์ถ”๊ฐ€:
BoxDecoration( image: DecorationImage( image: AssetImage('assets/background.jpg'), fit: BoxFit.cover, ), )
Dart
๋ณต์‚ฌ

Row

์—ฌ๋Ÿฌ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ํ–‰๋ฐฉํ–ฅ(๊ฐ€๋กœ)๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ์œ„์ ฏ

mainAxisAlignment

์ฃผ์ถ• ์ •๋ ฌ ๋ฐฉ์‹ Row ์˜ ์ฃผ์ถ•์€ ๊ฐ€๋กœ๋ฐฉํ–ฅ
mainAxisAlignment
ํšจ๊ณผ
start
์‹œ์ž‘ ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
center
๊ฐ€์šด๋ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
end
๋ ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
spaceBetween
์‹œ์ž‘๊ณผ ๋์— ์ •๋ ฌํ•˜๊ณ , ์ค‘๊ฐ„์„ ๋™์ผํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ถ„๋ฐฐ
spaceAround
๊ฐ ์ž์‹์˜ ์ฃผ์œ„์— ๋™์ผํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ถ„๋ฐฐ
spaceEvenly
๋™์ผํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ชจ๋“  ์ž์‹์„ ๋ถ„๋ฐฐ

crossAxisAlignment

๊ต์ฐจ์ถ• ์ •๋ ฌ ๋ฐฉ์‹ Row ์˜ ๊ต์ฐจ์ถ•์€ ์„ธ๋กœ๋ฐฉํ–ฅ
crossAxisAlignment
ํšจ๊ณผ
start
์œ„์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
center
์ค‘์•™์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
end
์•„๋ž˜์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ

๋ฌธ๋ฒ•

Row( mainAxisAlignment: MainAxisAlignment.start, // ๊ฐ€๋กœ ์ •๋ ฌ (์˜ต์…˜) crossAxisAlignment: CrossAxisAlignment.center, // ์„ธ๋กœ ์ •๋ ฌ (์˜ต์…˜) mainAxisSize: MainAxisSize.max, // Row์˜ ํฌ๊ธฐ ์ง€์ • (์˜ต์…˜) children: <Widget>[ // ์ž์‹ ์œ„์ ฏ๋“ค ], )
Dart
๋ณต์‚ฌ

์˜ˆ์‹œ

Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, children: <Widget>[ Container(color: Colors.red, width: 50.0, height: 50.0), Container(color: Colors.blue, width: 50.0, height: 50.0), Container(color: Colors.green, width: 50.0, height: 50.0), ], )
Dart
๋ณต์‚ฌ

Column

์—ฌ๋Ÿฌ๊ฐ€์ง€ ์š”์†Œ๋ฅผ ์—ด๋ฐฉํ–ฅ(์„ธ๋กœ)๋กœ ๋ฐฐ์น˜ํ•˜๋Š” ์œ„์ ฏ

mainAxisAlignment

์ฃผ์ถ• ์ •๋ ฌ ๋ฐฉ์‹ Column ์˜ ์ฃผ์ถ•์€ ์„ธ๋กœ๋ฐฉํ–ฅ
mainAxisAlignment
ํšจ๊ณผ
start
์‹œ์ž‘ ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
center
๊ฐ€์šด๋ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
end
๋ ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
spaceBetween
์‹œ์ž‘๊ณผ ๋์— ์ •๋ ฌํ•˜๊ณ , ์ค‘๊ฐ„์„ ๋™์ผํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ถ„๋ฐฐ
spaceAround
๊ฐ ์ž์‹์˜ ์ฃผ์œ„์— ๋™์ผํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ถ„๋ฐฐ
spaceEvenly
๋™์ผํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ชจ๋“  ์ž์‹์„ ๋ถ„๋ฐฐ

crossAxisAlignment

๊ต์ฐจ์ถ• ์ •๋ ฌ ๋ฐฉ์‹ Column ์˜ ๊ต์ฐจ์ถ•์€ ๊ฐ€๋กœ๋ฐฉํ–ฅ
crossAxisAlignment
ํšจ๊ณผ
start
์ขŒ์ธก์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
center
์ค‘์•™์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
end
์šฐ์ธก์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
stretch
์ž์‹๋“ค์„ ์ตœ๋Œ€ ํฌ๊ธฐ๋กœ ๋Š˜๋ฆฌ๊ณ  ์„ธ๋กœ๋กœ ์ •๋ ฌ

๋ฌธ๋ฒ•

Column( mainAxisAlignment: MainAxisAlignment.start, // ์„ธ๋กœ ์ •๋ ฌ (์˜ต์…˜) crossAxisAlignment: CrossAxisAlignment.center, // ๊ฐ€๋กœ ์ •๋ ฌ (์˜ต์…˜) mainAxisSize: MainAxisSize.max, // Column์˜ ํฌ๊ธฐ ์ง€์ • (์˜ต์…˜) children: <Widget>[ // ์ž์‹ ์œ„์ ฏ๋“ค ], )
Dart
๋ณต์‚ฌ

์˜ˆ์‹œ

Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, children: <Widget>[ Container(color: Colors.red, width: 50.0, height: 50.0), Container(color: Colors.blue, width: 50.0, height: 50.0), Container(color: Colors.green, width: 50.0, height: 50.0), ], )
Dart
๋ณต์‚ฌ

Expanded

๋ถ€๋ชจ ์œ„์ ฏ์— ๋Œ€ํ•˜์—ฌ, ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์—ฌ์œ  ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์ฐจ์ง€ํ•˜๋Š” ์œ„์ ฏ
Expanded ์œ„์ ฏ์€ ์ž์‹ ์œ„์ ฏ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์—ฌ์œ  ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์ฐจ์ง€ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ Row ๋˜๋Š” Column ๋‚ด์—์„œ ์ž์‹ ์œ„์ ฏ์— ์ ์šฉ๋˜์–ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

Row( children: [ Container(width: 50, height: 50, color: Colors.red), Expanded( child: Container(color: Colors.blue), ), Container(width: 50, height: 50, color: Colors.green), ], )
Dart
๋ณต์‚ฌ
์œ„ ์˜ˆ์‹œ์—์„œ Expanded๋Š” ํŒŒ๋ž€์ƒ‰ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚˜๋จธ์ง€ ๊ฐ€๋กœ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์ฐจ์ง€ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Stack

์ž์‹ ์œ„์ ฏ๋“ค์„ ๊ฒน์ณ์„œ ๋ฐฐ์น˜ํ•˜๋Š” ์œ„์ ฏ
Stack ์œ„์ ฏ์€ ์ž์‹ ์œ„์ ฏ์„ ๊ฒน์น˜๊ฒŒ ๋ฐฐ์น˜ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž์‹ ์œ„์ ฏ์€ ์œ„์น˜ ๋ฐ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์Œ“์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ

Stack( children: [ Positioned( top: 10, left: 10, child: Container(width: 50, height: 50, color: Colors.red), ), Positioned( top: 20, left: 20, child: Container(width: 50, height: 50, color: Colors.blue), ), ], )
Dart
๋ณต์‚ฌ
์œ„ ์˜ˆ์‹œ์—์„œ Stack์€ ๋นจ๊ฐ„์ƒ‰๊ณผ ํŒŒ๋ž€์ƒ‰ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฒน์ณ์„œ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

Center

์ž์‹ ์œ„์ ฏ์„ ํ™”๋ฉด์˜ ๊ฐ€์šด๋ฐ ์ •๋ ฌํ•˜๋Š” ์œ„์ ฏ
Center ์œ„์ ฏ์€ ์ž์‹ ์œ„์ ฏ์„ ํ™”๋ฉด์˜ ๊ฐ€์šด๋ฐ์— ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

Center( child: Container(width: 100, height: 100, color: Colors.green), )
Dart
๋ณต์‚ฌ
์œ„ ์˜ˆ์‹œ์—์„œ Center๋Š” ์ดˆ๋ก์ƒ‰ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™”๋ฉด ๊ฐ€์šด๋ฐ์— ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

Align

์ž์‹ ์œ„์ ฏ์„ ์ •ํ•ด์ง„ ์œ„์น˜์— ๋ฐฐ์น˜ํ•˜๋Š” ์œ„์ ฏ
Align ์œ„์ ฏ์€ ์ž์‹ ์œ„์ ฏ์„ ์ •ํ•ด์ง„ ์œ„์น˜์— ๋ฐฐ์น˜ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. alignment ์†์„ฑ์„ ํ†ตํ•ด ์œ„์น˜๋ฅผ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์†์„ฑ๊ฐ’
์„ค๋ช…
topLeft
์ขŒ์ธก ์ƒ๋‹จ
topCenter
์ƒ๋‹จ ์ค‘์•™
topRight
์šฐ์ธก ์ƒ๋‹จ
centerLeft
์ขŒ์ธก ์ค‘์•™
center
์ค‘์•™
centerRight
์šฐ์ธก ์ค‘์•™
bottomLeft
์ขŒ์ธก ํ•˜๋‹จ
bottomCenter
ํ•˜๋‹จ ์ค‘์•™
bottomRight
์šฐ์ธก ํ•˜๋‹จ

์˜ˆ์‹œ

Align( alignment: Alignment(0.5, 0.5), child: Container(width: 50, height: 50, color: Colors.orange), )
Dart
๋ณต์‚ฌ
์œ„ ์˜ˆ์‹œ์—์„œ Align์€ ์˜ค๋ Œ์ง€์ƒ‰ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™”๋ฉด์˜ ๊ฐ€๋กœ์™€ ์„ธ๋กœ ์ค‘๊ฐ„์— ์œ„์น˜ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. Alignment ํด๋ž˜์Šค์˜ ๊ฐ’์„ ์กฐ์ ˆํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์œ„์น˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SizedBox

๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๊ณต๊ฐ„์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์œ„์ ฏ
์ฃผ๋กœ ์—ฌ๋ฐฑ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ •ํ™•ํ•œ ํฌ๊ธฐ์˜ ์ƒ์ž๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. Container์™€ ๋‹ฌ๋ฆฌ ๋ฐ์ฝ”๋ ˆ์ด์…˜ ์—†์ด ํฌ๊ธฐ๋งŒ ์ง€์ •ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์œ„์ ฏ์ž…๋‹ˆ๋‹ค.

๋ฌธ๋ฒ•

SizedBox( width: 100.0, // ๊ฐ€๋กœ ํฌ๊ธฐ (์˜ต์…˜) height: 50.0, // ์„ธ๋กœ ํฌ๊ธฐ (์˜ต์…˜) child: YourWidget(), // ํฌ๊ธฐ๊ฐ€ ์ง€์ •๋œ ์œ„์ ฏ (์˜ต์…˜) )
Dart
๋ณต์‚ฌ

์˜ˆ์‹œ

SizedBox( width: 200.0, height: 100.0, child: Container( color: Colors.blue, child: Center( child: Text('Hello, SizedBox!'), ), ), )
Dart
๋ณต์‚ฌ
์œ„์˜ ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ๋Š” SizedBox๋กœ ํฌ๊ธฐ๊ฐ€ 200x100์ธ ์ƒ์ž๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ ์•ˆ์— Container๋ฅผ ๋„ฃ์–ด ํŒŒ๋ž€์ƒ‰์œผ๋กœ ์ฑ„์šฐ๊ณ  ๊ฐ€์šด๋ฐ์— ํ…์ŠคํŠธ๋ฅผ ๋ฐฐ์น˜ํ•œ ์˜ˆ์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. width์™€ height๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Padding

์ž์‹ ์œ„์ ฏ ์ฃผ์œ„์— ์—ฌ๋ฐฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์œ„์ ฏ

๋ฌธ๋ฒ•

Padding( padding: EdgeInsets.all(16.0), // ์—ฌ๋ฐฑ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ • (์˜ต์…˜) child: YourWidget(), // ์—ฌ๋ฐฑ์ด ์ถ”๊ฐ€๋  ์œ„์ ฏ (ํ•„์ˆ˜) )
Dart
๋ณต์‚ฌ

์˜ˆ์‹œ

Padding( padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 10.0), child: Container( color: Colors.green, child: Center( child: Text('Hello, Padding!'), ), ), )
Dart
๋ณต์‚ฌ
์œ„์˜ ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ๋Š” Padding์œผ๋กœ ์ˆ˜์ง์œผ๋กœ 20.0, ์ˆ˜ํ‰์œผ๋กœ 10.0์˜ ์—ฌ๋ฐฑ์„ ์ถ”๊ฐ€ํ•œ ํ›„, ๊ทธ ์•ˆ์— Container๋ฅผ ๋„ฃ์–ด ์ดˆ๋ก์ƒ‰์œผ๋กœ ์ฑ„์šฐ๊ณ  ๊ฐ€์šด๋ฐ์— ํ…์ŠคํŠธ๋ฅผ ๋ฐฐ์น˜ํ•œ ์˜ˆ์‹œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. padding ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋ฐฑ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ListView

์Šคํฌ๋กค ๊ฐ€๋Šฅํ•œ ์„ธ๋กœ ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์œ„์ ฏ

ListTile

๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์œ„์ ฏ
์†์„ฑ
์„ค๋ช…
ํƒ€์ž…
leading
์•„์ดํ…œ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์œ„์น˜ํ•˜๋Š” ์œ„์ ฏ
Widget
title
์•„์ดํ…œ์˜ ์ œ๋ชฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ…์ŠคํŠธ ์œ„์ ฏ
Widget
subtitle
์•„์ดํ…œ์˜ ๋ถ€์ œ๋ชฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ…์ŠคํŠธ ์œ„์ ฏ
Widget
trailing
์•„์ดํ…œ์˜ ๋ ๋ถ€๋ถ„์— ์œ„์น˜ํ•˜๋Š” ์œ„์ ฏ
Widget
onTap
์•„์ดํ…œ์ด ํƒญ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜
void Function()
selected
์•„์ดํ…œ์ด ์„ ํƒ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถˆ๋ฆฌ์–ธ ๊ฐ’
bool
contentPadding
์•„์ดํ…œ์˜ ๋‚ด์šฉ ์ฃผ์œ„์˜ ์—ฌ๋ฐฑ์„ ์ง€์ •ํ•˜๋Š” ์†์„ฑ
EdgeInsets
enabled
์•„์ดํ…œ์ด ํ™œ์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถˆ๋ฆฌ์–ธ ๊ฐ’
bool

๋ฌธ๋ฒ•

ListView( children: <Widget>[ // ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ๋“ค... ], )
Dart
๋ณต์‚ฌ

์†์„ฑ

์†์„ฑ
์„ค๋ช…
ํƒ€์ž…
children
ListView์— ํฌํ•จ๋  ์œ„์ ฏ๋“ค์˜ ๋ชฉ๋ก
List<Widget>
padding
๋ชฉ๋ก ์ฃผ์œ„์— ์ถ”๊ฐ€๋˜๋Š” ์—ฌ๋ฐฑ
EdgeInsets
shrinkWrap
๋ฆฌ์ŠคํŠธ๊ฐ€ ์ž์‹ ์˜ ์ปจํ…์ธ  ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ถ•์†Œ๋˜๋Š”์ง€ ์—ฌ๋ถ€
bool

์˜ˆ์‹œ

ListView( children: <Widget>[ ListTile( leading: Icon(Icons.map), title: Text('Map'), ), ListTile( leading: Icon(Icons.photo), title: Text('Album'), ), // ์ถ”๊ฐ€์ ์ธ ๋ฆฌ์ŠคํŠธ ์•„์ดํ…œ๋“ค... ], )
Dart
๋ณต์‚ฌ

GridView

๊ทธ๋ฆฌ๋“œ ํ˜•ํƒœ์˜ ์•„์ดํ…œ๋“ค์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ์Šคํฌ๋กค ๊ฐ€๋Šฅํ•œ ์œ„์ ฏ

๋ฌธ๋ฒ•

GridView( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, crossAxisSpacing: 8.0, mainAxisSpacing: 8.0, ), children: <Widget>[ // ๊ทธ๋ฆฌ๋“œ ์•„์ดํ…œ๋“ค... ], )
Dart
๋ณต์‚ฌ

์†์„ฑ

์†์„ฑ
์„ค๋ช…
ํƒ€์ž…
gridDelegate
๊ทธ๋ฆฌ๋“œ์˜ ๋ ˆ์ด์•„์›ƒ ๋ฐ ๊ฐ„๊ฒฉ์„ ์ •์˜ํ•˜๋Š” ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ
SliverGridDelegate
children
GridView์— ํฌํ•จ๋  ์œ„์ ฏ๋“ค์˜ ๋ชฉ๋ก
List<Widget>
padding
๊ทธ๋ฆฌ๋“œ ์ฃผ์œ„์— ์ถ”๊ฐ€๋˜๋Š” ์—ฌ๋ฐฑ
EdgeInsets
shrinkWrap
๊ทธ๋ฆฌ๋“œ๊ฐ€ ์ž์‹ ์˜ ์ปจํ…์ธ  ํฌ๊ธฐ์— ๋งž๊ฒŒ ์ถ•์†Œ๋˜๋Š”์ง€ ์—ฌ๋ถ€
bool

์˜ˆ์‹œ

GridView.builder( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, crossAxisSpacing: 8.0, mainAxisSpacing: 8.0, ), itemCount: 10, itemBuilder: (BuildContext context, int index) { return Card( child: Center( child: Text('Item $index'), ), ); }, )
Dart
๋ณต์‚ฌ

Card

Material Design ์Šคํƒ€์ผ์˜ ํ‘œ๋ฉด์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ

๋ฌธ๋ฒ•

Card( child: // ์นด๋“œ ๋‚ด์šฉ, )
Dart
๋ณต์‚ฌ

์†์„ฑ

์†์„ฑ
์„ค๋ช…
ํƒ€์ž…
child
์นด๋“œ ๋‚ด๋ถ€์— ํ‘œ์‹œ๋˜๋Š” ์œ„์ ฏ
Widget
color
์นด๋“œ์˜ ๋ฐฐ๊ฒฝ์ƒ‰
Color
elevation
๊ทธ๋ฆผ์ž ๋†’์ด
double
shape
์นด๋“œ์˜ ๋ชจ์–‘ ์ง€์ •
ShapeBorder

์˜ˆ์‹œ

Card( elevation: 4.0, child: ListTile( leading: Icon(Icons.album), title: Text('Title'), subtitle: Text('Subtitle'), ), )
Dart
๋ณต์‚ฌ