[flutter] AnimatedContainer의 활용 예시: 버튼 클릭 시 애니메이션 효과 추가하기

애니메이션은 사용자 경험을 향상시키는 데 있어서 매우 중요합니다. Flutter의 AnimatedContainer를 사용하면 간단한 코드로 UI 요소에 애니메이션을 추가할 수 있습니다. 이번 블로그 포스트에서는 Flutter 앱에 버튼 클릭 시 AnimatedContainer를 통해 애니메이션 효과를 추가하는 방법을 소개하겠습니다.

1. AnimatedContainer 이해하기

AnimatedContainer는 상태가 변경될 때 매끄러운 애니메이션 효과를 제공하는 Flutter 위젯 중 하나입니다. 주로 속성값(예: 크기, 색상, 모양 등)이 변경될 때 애니메이션을 적용할 때 사용됩니다.

2. 예시 코드

다음은 버튼 클릭 시 AnimatedContainer를 활용한 애니메이션 효과를 추가하는 예시 코드입니다.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool _isContainerExpanded = false;

  void _toggleContainer() {
    setState(() {
      _isContainerExpanded = !_isContainerExpanded;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('AnimatedContainer 예제'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            AnimatedContainer(
              duration: Duration(seconds: 1),
              width: _isContainerExpanded ? 200 : 100,
              height: _isContainerExpanded ? 200 : 100,
              color: _isContainerExpanded ? Colors.blue : Colors.green,
              curve: Curves.easeIn,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _toggleContainer,
              child: Text(_isContainerExpanded ? '축소하기' : '확대하기'),
            ),
          ],
        ),
      ),
    );
  }
}

위 예시 코드에서는 AnimatedContainer를 사용하여 버튼 클릭 시 컨테이너의 크기와 색상이 애니메이션 효과와 함께 변경되도록 구현되었습니다.

3. 코드 해설

이 예시 코드를 사용하면 버튼 클릭 시 AnimatedContainer를 활용한 매끄러운 애니메이션 효과를 경험할 수 있습니다.

애니메이션을 추가함으로써 Flutter 앱의 사용자 경험을 높일 수 있으며, AnimatedContainer는 이를 간단하게 구현할 수 있는 좋은 방법입니다.

위 예시 코드를 참고하여 본인의 Flutter 프로젝트에 애니메이션 효과를 추가해 보세요. 사용자들은 보다 매끄러운 UI 변화를 경험할 것입니다.

Happy coding! 😊

참고 자료 - AnimatedContainer 공식 문서 - Flutter.dev