[flutter] AnimatedContainer의 회전 속성을 이용한 회전 애니메이션 구현하기
Flutter에서 UI 요소에 애니메이션을 쉽게 적용할 수 있는 AnimatedContainer
위젯은 매우 유용합니다. 이번 블로그 포스트에서는 AnimatedContainer
의 transform
속성을 이용하여 회전 애니메이션을 구현하는 방법에 대해 알아보겠습니다.
애니메이션 구현 방법
AnimatedContainer
의 transform
속성을 사용하면 여러 종류의 변형(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도씩 회전하는 애니메이션을 확인할 수 있습니다.
결론
AnimatedContainer
의 transform
속성을 이용하여 회전 애니메이션을 구현하는 방법에 대해 알아보았습니다. 이를 응용하여 다양한 애니메이션 효과를 구현할 수 있으니, 다양한 UI 요소에 애니메이션을 적용해보세요. Happy coding!