함께 공부하는 Flutter
[Flutter] AnimatedContainer
냥냥박사에디
2023. 5. 1. 22:26
반응형
Flutter의 AnimatedContainer 위젯은 컨테이너의 크기, 색상, 경계선 등을 애니메이션화하여 부드러운 애니메이션을 만들 수 있는 위젯입니다.
AnimatedContainer 위젯은 Container와 유사하지만, 프로퍼티들이 변경될 때 자연스러운 애니메이션을 제공합니다. 예를 들어, 다음과 같은 코드를 작성하여 AnimatedContainer를 사용할 수 있습니다.
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
bool _large = false;
@override
Widget build(BuildContext context) {
return Center(
child: GestureDetector(
onTap: () {
setState(() {
_large = !_large;
});
},
child: AnimatedContainer(
duration: Duration(seconds: 1),
width: _large ? 200.0 : 100.0,
height: _large ? 200.0 : 100.0,
color: _large ? Colors.red : Colors.blue,
child: Center(
child: Text(
_large ? 'Large' : 'Small',
style: TextStyle(
fontSize: 24.0,
color: Colors.white,
위 코드는 _large 상태 변수에 따라 AnimatedContainer의 너비, 높이, 색상을 변경하도록 합니다. onTap 이벤트가 발생하면 _large 변수가 반전되므로, AnimatedContainer는 새로운 프로퍼티 값으로 자연스러운 애니메이션을 만들어내게 됩니다.
AnimatedContainer 위젯은 이외에도, curve 속성을 사용하여 애니메이션의 속도 곡선을 조정할 수 있습니다. 또한, 애니메이션이 끝나면 특정 동작을 수행하도록 onEnd 콜백 함수를 정의할 수도 있습니다.
반응형