목표
- Flutter의 기본 위젯 사용법 익히기
- 레이아웃 구성 방법 배우기
- StatelessWidget 과 StatefulWidget의 차이 이해하기
Flutter 기본 위젯
Flutter는 '모든 것이 위젯이다.' 라는 철학을 가지고 있다. 그만큼 다양한 UI 요소들이 Widget 형태로 제공된다.
주요 위젯 소개
위젯 | 설명 |
Text | 텍스트 표시 |
Container | 박스 형태, 배경색, 패딩, 마진 등을 설정할 수 있음 |
Row, Column | 수평 / 수직 정렬 |
Image | 네트워크 이미지 또는 에셋 이미지 표시 |
Center | 자식 위젯을 중앙 정렬 |
ElevatedButton | 기본 버튼 위젯 |
SizedBox | 여백 주기용 (공간 확보) |
예시 : 간단한 레이아웃 구성
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Hello Flutter!'),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {},
child: Text('Click Me'),
),
],
)
StatelessWidget vs StatefulWidget
1. StatelessWidget (비상태 위젯)
- 한번 그려지면 다시 변하지 않는 UI
- 사용 예 : 로고, 단순 텍스트 등
class MyStatelessWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text('I never change!');
}
}
2. StatefulWidget 상태 위젯)
- 내부 상태에 따라 다시 그려질 수 있는 위젯
- 버튼 클릭, 입력 필드 등 동적 변화에 사용
class MyCounter extends StatefulWidget {
@override
State<MyCounter> createState() => _MyCounterState();
}
class _MyCounterState extends State<MyCounter> {
int count = 0;
void increment() {
setState(() {
count += 1;
});
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Text('Count: $count'),
ElevatedButton(onPressed: increment, child: Text('Increment')),
],
);
}
}
setState() 는 화면을 다시 그리게 만들어주는 중요한 함수이다.
요약
- Flutter는 다양한 기본 위젯을 제공하며, 이를 조합해 UI를 구성
- Stateless는 변하지 않는 UI, Stateful은 상태 변화가 필요한 UI에 사용
- build() 메서드에서 UI를 정의하며, 상태 변경 시 setState()로 갱신
'앱 개발 > Flutter' 카테고리의 다른 글
[Flutter] 입문 - 시작과 기초 개념 잡기 (1) | 2025.07.25 |
---|---|
[Flutter] 입문 - 화면 전환(Navigation) (0) | 2025.07.25 |
[Flutter] Form 알아보기 (4) | 2025.07.24 |