Flutter에서 StatefulWidget
은 변경 가능한 상태를 가질 수 있는 위젯을 나타냅니다. 즉, 해당 위젯의 내부 데이터가 시간에 따라 변경될 수 있으며, 이 변경사항은 UI에 반영됩니다. StatefulWidget
은 두 부분으로 구성됩니다: 위젯 부분과 상태 부분입니다.
위젯 부분 (StatefulWidget
클래스):
createState
메서드를 오버라이드하여, 상태 객체를 생성하고 반환합니다.상태 부분 (State
클래스):
setState
메서드를 사용하여 상태를 변경하고, UI를 재구성합니다.StatefulWidget
의 주요 특징은 다음과 같습니다:
간단한 StatefulWidget
예시는 다음과 같습니다:
class CounterWidget extends StatefulWidget {
_CounterWidgetState createState() => _CounterWidgetState();
}
class _CounterWidgetState extends State<CounterWidget> {
int _count = 0;
void _incrementCounter() {
setState(() {
_count++;
});
}
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Text('현재 카운트: $_count'),
ElevatedButton(
onPressed: _incrementCounter,
child: Text('증가'),
),
],
);
}
}
위의 예제에서 CounterWidget
은 StatefulWidget
로 정의되며, _CounterWidgetState
는 해당 위젯의 상태를 관리하는 클래스입니다. _incrementCounter
메서드를 사용하여 카운트 값을 증가시키며, setState
를 호출하여 UI를 업데이트합니다.
StatefulWidget
을 사용하여 동적인 동작을 가진 위젯을 구성할 수 있습니다. StatefulWidget
은 사용자의 인터랙션, 타이머, 네트워크 요청 등과 같이 데이터가 변경될 가능성이 있는 경우에 주로 사용됩니다.