[Flutter] Basic Widget 기본 개념 (디자인)
1. 디자인 관련 위젯
디자인 관련 위젯은 배경을 추가하거나 간격을 추가하거나 패딩을 추가하는 등 디자인적 요소를 적용할 때 사용함
1-1. `Container`위젯
- 말 그대로 다른 위젯을 담는데 사용
- 위젯의 높이와 너비를 지정하거나, 배경이나 테두리를 추가할 때 많이 사용
- 다른 위젯처럼 `child`파라미터 사용 가능
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
// 디자인 관련 위젯
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Container(
// 스타일 적용
decoration: BoxDecoration(
// 배경색 적용
color: Colors.red,
border: Border.all(
width: 16.0,
color: Colors.black,
),
borderRadius: BorderRadius.circular(
16.0,
),
),
height: 200.0,
width: 100.0,
)
),
),
);
}
}
처음엔 전체코드를 보고 다음엔 또 수정한 코드만 보겠음
1-2. `SizedBox`위젯
`SizedBox`위젯은 일반적으로 일정 크기의 공간을 공백으로 두고 싶을 때 사용됨
`Container`위젯을 사용해도 공백을 만들 수 있지만, `SizedBox`는 `const`생성자를 사용했을 때 퍼포먼스에서 이점을 얻을 수 있음.
SizedBox(
height: 200.0,
width: 200.0,
child: Container(
color: Colors.red,
),
)
1-3. `Padding`위젯
`Padding`위젯은 `child`위젯에 여백을 제공할 때 사용함. `Padding`위젯을 사용하면 `Padding`위젯의 상위 위젯과 하위 위젯 사이에 여백을 둘 수 있음.
- `Padding`위젯의 `padding`파라미터는 `EdgeInsets`라는 값을 입력해야함.
- `child`파라미터에 `Padding`을 적용하고 싶은 위젯을 입력할 수 있음.
Container(
color: Colors.blue,
child: Padding(
padding: EdgeInsets.all(
16.0,
),
child: Container(
color: Colors.red,
width: 50.0,
height: 50.0,
),
),
)
패딩은 적용된 위젯이 차지하는 크기 내부에서 간격이 추가됨.
1-4. `SafeArea`위젯
`SafeArea`위젯을 사용하면 기기별로 예외 처리를 하지않고 안전한 화면에서만 위젯을 그릴 수 있음.
SafeArea(
top: true,
bottom: true,
left: true,
right: true,
child: Container(
color: Colors.red,
height: 300.0,
width: 300.0,
),
)
위 코드처럼 작성하면됨. 단, 현재는 `body: Center`로 설정되서 가운데 정렬이 되어있음 이부분을 지워야만 `SafeArea`의 역할을 제대로 확인 할 수 있을 것임.
이런식으로 ㅇㅇ
body: SafeArea(
// 원하는 부위만 따로 적용 가능
top: true,
bottom: true,
left: true,
right: true,
child: Container(
color: Colors.red,
height: 300.0,
width: 300.0,
),
),
https://github.com/Leedoseo/Flutter_WidgetStudy
GitHub - Leedoseo/Flutter_WidgetStudy
Contribute to Leedoseo/Flutter_WidgetStudy development by creating an account on GitHub.
github.com
출처 : 코드 팩토리의 플러터 프로그래밍
'Flutter > Flutter Study' 카테고리의 다른 글
[Flutter] Basic Widget 기본 개념 (실습) (0) | 2025.04.15 |
---|---|
[Flutter] Basic Widget 기본 개념 (배치) (0) | 2025.04.15 |
[Flutter] Basic Widget 기본 개념 (텍스트와 제스처) (0) | 2025.04.14 |
[Flutter] Basic Widget 기본 개념 (Child와 Children) (1) | 2025.04.14 |
[Flutter] Basic Widget 기본 개념 (0) | 2025.04.14 |