[flutter] 플러터 애니메이션을 통한 화면 전환의 부드러움 구현 방법
플러터 앱을 개발하다 보면 화면 전환을 부드럽게 만들고 싶을 때가 많습니다. 애니메이션을 사용하여 화면 전환의 부드러움을 높일 수 있으며, 이를 위해 여러 가지 방법이 있습니다.
애니메이션 패키지 사용
플러터에서는 animations 패키지를 사용하여 애니메이션을 쉽게 구현할 수 있습니다. 예를 들어, PageRouteBuilder 클래스를 활용하여 페이지 전환 시 애니메이션을 추가할 수 있습니다.
Navigator.of(context).push(
PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => MyNewScreen(),
transitionsBuilder: (context, animation, secondaryAnimation, child) {
var begin = Offset(1.0, 0.0);
var end = Offset.zero;
var curve = Curves.ease;
var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
return SlideTransition(
position: animation.drive(tween),
child: child,
);
},
),
);
이와 같은 방식으로 페이지 전환 시 화면이 슬라이드되는 애니메이션 효과을 줄 수 있습니다.
Hero 애니메이션
또 다른 방법으로는 Hero 애니메이션을 사용하는 것입니다. Hero 애니메이션을 이용하면 한 화면에서 다른 화면으로 전환될 때 특정 위젯이 부드럽게 애니메이션되는 효과를 줄 수 있습니다.
Hero(
tag: 'imageTag',
child: Image.asset('image.jpg'),
);
Hero
위젯은 전환될 때 같은 tag
를 가진 위젯끼리 부드러운 애니메이션 효과를 줍니다.
Conclusion
플러터에서 화면 전환의 부드러움을 구현하기 위해 animations 패키지나 Hero 애니메이션을 사용하는 방법을 알아봤습니다. 이러한 방법들을 응용하여 실제 앱을 개발할 때 부드러운 화면 전환을 구현할 수 있습니다.