일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- C# delegate
- 구조체
- 유니티
- HTML
- 도커
- 포인터
- vim
- 다트 언어
- 플러터
- Flutter
- c#
- docker
- git
- C++
- c# 추상 클래스
- jupyter lab
- Algorithm
- c# winform
- c언어
- 깃
- jupyter
- github
- gitlab
- c# 윈폼
- Data Structure
- dart 언어
- Python
- C언어 포인터
- Unity
- Houdini
Archives
- Today
- Total
nomad-programmer
[Flutter] Hero 애니메이션 위젯 본문
Hero 위젯은 화면 전환시 자연스럽게 연결되는 애니메이션을 지원한다. 이전 화면으로 돌아갈 때도 자연스럽게 애니메이션이 동작한다.
Hero 위젯 사용 방법은 애니메이션 효과의 대상이 되는 양쪽 화면의 위젯을 Hero 위젯으로 감싸고, tag 프로퍼티를 반드시 동일하게 지정해야 한다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: HeroPage(title: '플러터 테스트'),
);
}
}
class HeroPage extends StatelessWidget {
HeroPage({Key key, this.title}) : super(key: key);
final String title;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: new Text(this.title),
),
body: Center(
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => HeroDetailPage(
title: this.title,
)),
);
},
child: Hero(
tag: 'image', // 여기서 작성한 태그와 두 번째 페이지의 태그가 동일해야 한다.
child: Image.asset(
'assets/IMG_9245.jpeg',
width: 100,
height: 100,
),
),
),
),
);
}
}
// 두 번째 페이지
class HeroDetailPage extends StatelessWidget {
HeroDetailPage({Key key, this.title}) : super(key: key);
final String title;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: new Text(this.title),
),
body: Hero(
tag: 'image', // 여기서 작성한 태그와 첫 번째 페이지의 태그가 동일해야 한다.
child: Image.asset('assets/IMG_9245.jpeg'),
),
);
}
}
'Programming > Flutter' 카테고리의 다른 글
[Programming/Flutter] Sliver 애니메이션 효과 (0) | 2020.10.09 |
---|---|
[Flutter] AnimatedContainer 애니메이션 위젯 (0) | 2020.10.09 |
[Flutter] GestureDetector & InkWell 위젯 (0) | 2020.10.08 |
[Programming/Flutter] TimePicker 위젯 (0) | 2020.10.08 |
[Programming/Flutter] 플러터 테스트 환경 (WEB) (0) | 2020.10.07 |
Comments