[flutter] 플러터 Container에서 상태(state)를 관리하는 방법은 무엇인가요?
1. StatefulWidget을 사용하는 방법
StatefulWidget을 사용하여 Container의 상태를 관리할 수 있습니다. StatefulWidget을 확장하는 커스텀 위젯을 만들고, 그 안에 상태를 정의하고 업데이트할 수 있습니다. 예를 들어, 다음과 같이 StatefulWidget을 확장한 커스텀 위젯을 만들고 상태를 관리할 수 있습니다.
import 'package:flutter/material.dart';
class MyContainer extends StatefulWidget {
@override
_MyContainerState createState() => _MyContainerState();
}
class _MyContainerState extends State<MyContainer> {
bool _isTapped = false;
void _handleTap() {
setState(() {
_isTapped = !_isTapped;
});
}
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: _handleTap,
child: Container(
width: 100,
height: 100,
color: _isTapped ? Colors.blue : Colors.red,
),
);
}
}
위 예제에서는 MyContainer
라는 StatefulWidget을 만들고, 그 안에서 _isTapped
라는 상태를 관리하고 있습니다.
2. Provider나 Bloc을 사용하는 방법
Provider나 Bloc과 같은 상태 관리 라이브러리를 사용하여 Container의 상태를 관리할 수도 있습니다. 이 방법은 복잡한 앱에서 더 유용하며, 상태를 전역으로 관리하고 여러 위젯에서 공유할 수 있습니다.
이러한 방법을 사용하려면 Provider 패키지나 Bloc 패키지를 사용해서 상태를 외부에서 관리하고 Container에 적용해야 합니다.
플러터에서 Container의 상태를 관리하는 방법은 위에 설명한 두 가지 방법을 통해 구현할 수 있습니다. 개발 중인 앱의 규모나 복잡도에 따라 적합한 방법을 선택할 수 있습니다.