cover-img

Flutter Hero Routing

30 March, 2023

2

2

0

Flutter Hero routing

Flutter Hero Routing is a powerful tool for creating seamless and visually stunning transitions between different screens in your Flutter app. With Hero routing, you can animate a widget between two screens to create a smooth, eye-catching effect that captures the user's attention.

How Hero Routing Works

The Hero widget in Flutter is used to create Hero animations. It takes two widgets, a source and a destination, and smoothly transitions the source widget to the destination widget, creating an animated effect.

To use Hero routing, you'll need to have two screens, each with a widget that you want to animate. The widget on the first screen will act as the source widget, and the widget on the second screen will act as the destination widget. Both widgets should have a unique tag that identifies them.

When the user taps on the source widget, you'll need to navigate to the second screen using a Navigator widget. To create the Hero animation, you'll wrap the source widget in a Hero widget and give it the same tag as the destination widget. On the second screen, you'll wrap the destination widget in another Hero widget with the same tag.

When you navigate to the second screen, the Hero widget will animate the source widget to the destination widget, creating a visually stunning transition.

Implementing Hero Routing in Flutter

To implement Hero routing in Flutter, you'll need to follow these steps:

  1. Create the source and destination screens, each with a widget that you want to animate.
  2. Wrap the source widget in a Hero widget with a unique tag. The tag should be the same as the destination widget's tag.
Hero(
tag: 'myHeroTag',
child: Container(
// Widget to be animated
),
),
  1. Navigate to the second screen using a Navigator widget.
Navigator.push(
context,
MaterialPageRoute(builder: (context) => DestinationScreen()),
);
  1. Wrap the destination widget in a Hero widget with the same tag as the source widget.
Hero(
tag: 'myHeroTag',
child: Container(
// Widget to be animated
),
),

That's it! When you navigate to the second screen, the Hero widget will smoothly animate the source widget to the destination widget.

Customizing the Hero Animation

You can customize the Hero animation in a number of ways. For example, you can change the duration of the animation using the duration property of the Hero widget.

Hero(
tag: 'myHeroTag',
child: Container(
// Widget to be animated
),
duration: Duration(seconds: 1),
),

You can also add a curve to the animation using the curve property.

Hero(
tag: 'myHeroTag',
child: Container(
// Widget to be animated
),
curve: Curves.easeInOut,
),

Conclusion

Hero routing is a powerful tool for creating visually stunning transitions between screens in your Flutter app. With Hero routing, you can animate a widget between two screens to create a smooth, eye-catching effect that captures the user's attention. By following the steps outlined in this article, you can implement Hero routing in your own Flutter app and create stunning transitions that will delight your users.

2

2

0

ShowwcaseHQ
Showwcase is where developers hang out and find new opportunities together as a community

More Articles

Showwcase is a professional tech network with over 0 users from over 150 countries. We assist tech professionals in showcasing their unique skills through dedicated profiles and connect them with top global companies for career opportunities.

© Copyright 2025. Showcase Creators Inc. All rights reserved.