[flutter] AnimatedContainer의 회전 속성을 이용한 회전 애니메이션 구현하기

Flutter에서 UI 요소에 애니메이션을 쉽게 적용할 수 있는 AnimatedContainer 위젯은 매우 유용합니다. 이번 블로그 포스트에서는 AnimatedContainertransform 속성을 이용하여 회전 애니메이션을 구현하는 방법에 대해 알아보겠습니다.

애니메이션 구현 방법

AnimatedContainertransform 속성을 사용하면 여러 종류의 변형(translation, rotation, scale) 애니메이션을 쉽게 적용할 수 있습니다. 이를 이용하여 위젯을 회전시키는 회전 애니메이션을 구현할 수 있습니다.

아래는 AnimatedContainer를 이용하여 회전 애니메이션을 구현하는 간단한 예제 코드입니다.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('회전 애니메이션')),
        body: Center(
          child: MyWidget(),
        ),
      ),
    );
  }
}

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  bool _isRotated = false;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        setState(() {
          _isRotated = !_isRotated;
        });
      },
      child: AnimatedContainer(
        width: 200,
        height: 200,
        color: Colors.blue,
        duration: Duration(seconds: 1),
        transform: _isRotated ? Matrix4.rotationZ(0.5) : Matrix4.rotationZ(0),
        child: Center(child: Text('탭하여 회전')),
      ),
    );
  }
}

위 예제 코드에서는 AnimatedContainer를 사용하여 회전 애니메이션을 구현하였습니다. _isRotated 변수를 토글하여 회전 상태를 변경하며, Matrix4.rotationZ를 사용하여 회전 애니메이션을 적용했습니다.

이를 실행하면 정사각형이 탭할 때마다 45도씩 회전하는 애니메이션을 확인할 수 있습니다.

결론

AnimatedContainertransform 속성을 이용하여 회전 애니메이션을 구현하는 방법에 대해 알아보았습니다. 이를 응용하여 다양한 애니메이션 효과를 구현할 수 있으니, 다양한 UI 요소에 애니메이션을 적용해보세요. Happy coding!