Creating smooth and elegant page transitions in Flutter can significantly enhance user experience, especially in mobile apps. Flutter makes it incredibly simple to implement animated route changes using built-in tools like PageRouteBuilder, AnimatedSwitcher, and FadeTransition. This tutorial will guide you step-by-step on how to create a simple fade transition between pages using Android Studio.

What You’ll Learn:
- How to use
PageRouteBuilderfor custom transitions - How to apply
FadeTransitionfor smooth effects - Code structure separation for scalability
Prerequisites:
Ensure that Flutter is installed and Android Studio is set up correctly. You can check the official Flutter installation guide if needed.
Step-by-Step Code Breakdown:
1. main.dart
import 'package:flutter/material.dart';
import 'home_page.dart';
import 'second_page.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Page Transition Demo',
theme: ThemeData(primarySwatch: Colors.blue),
home: HomePage(),
);
}
}
2. home_page.dart
import 'package:flutter/material.dart';
import 'second_page.dart';
class HomePage extends StatelessWidget {
void _navigateToSecondPage(BuildContext context) {
Navigator.of(context).push(_createRoute());
}
Route _createRoute() {
return PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => SecondPage(),
transitionsBuilder: (context, animation, secondaryAnimation, child) {
return FadeTransition(opacity: animation, child: child);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Home Page')),
body: Center(
child: ElevatedButton(
child: Text('Go to Second Page'),
onPressed: () => _navigateToSecondPage(context),
),
),
);
}
}
3. second_page.dart
import 'package:flutter/material.dart';
class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Second Page')),
body: Center(child: Text('Welcome to the Second Page')),
);
}
}
Result:
When the button is pressed, the app will smoothly fade into the next page using FadeTransition. This simple page animation helps create a more professional and delightful UI experience.
Tips:
- Use other transitions like
SlideTransition,ScaleTransition, or combine multiple effects for a more dynamic feel. - Encapsulate transitions into reusable widgets for better code management.