[flutter] Hero를 이용한 이미지 전환 애니메이션 구현하기
이번에는 Flutter 앱에서 Hero 위젯을 사용하여 이미지 전환 애니메이션을 구현하는 방법을 살펴보겠습니다. Hero 위젯은 두 화면 전환시에 이미지나 위젯의 전환 애니메이션을 부드럽게 처리할 수 있도록 도와줍니다.
Hero 애니메이션의 장점
Hero 애니메이션은 화면 전환간에 이미지나 위젯을 부드럽게 전환하여 사용자 경험을 향상시킵니다. 이를 통해 앱의 전환 효과를 더욱 생동감있게 만들고, 사용자들에게 집중을 끌 수 있습니다.
Hero를 이용한 이미지 전환 애니메이션 구현하기
아래는 간단한 예시 코드로 Hero 위젯을 사용하여 이미지 전환 애니메이션을 구현하는 방법을 보여줍니다.
- 첫 번째 화면 코드:
import 'package:flutter/material.dart';
class FirstScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('First Screen'),
),
body: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SecondScreen(),
),
);
},
child: Hero(
tag: 'imageTransition',
child: Image.asset('assets/first_image.png'),
),
),
);
}
}
- 두 번째 화면 코드:
import 'package:flutter/material.dart';
class SecondScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Second Screen'),
),
body: Center(
child: Hero(
tag: 'imageTransition',
child: Image.asset('assets/second_image.png'),
),
),
);
}
}
위 코드에서 FirstScreen
은 터치 이벤트를 감지하여 SecondScreen
으로 화면을 전환하고, Hero 위젯을 활용하여 이미지 전환 애니메이션을 구현합니다. 두 화면 모두 같은 tag
를 사용하여 동일한 이미지에 대한 전환을 처리합니다.
위 코드를 사용하면 사용자가 첫 번째 화면의 이미지를 터치하면 부드러운 전환 애니메이션이 적용된 채로 두 번째 화면으로 전환됩니다.
결론
이렇게 Flutter에서 Hero를 사용하여 이미지 전환 애니메이션을 구현할 수 있습니다. Hero를 적절히 활용하여 사용자 경험을 개선하고, 앱의 전환 효과를 더욱 매끄럽게 만들 수 있습니다. 만약 이미지 전환 애니메이션을 적용해야 할 경우, Hero 위젯을 고려해 보세요.
참고: Flutter 공식 문서 - Hero 애니메이션