// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; /// Flutter code sample for [PageTransitionsTheme]. void main() => runApp(const PageTransitionsThemeApp()); class PageTransitionsThemeApp extends StatelessWidget { const PageTransitionsThemeApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData( // Defines the page transition animations used by MaterialPageRoute // for different target platforms. // Non-specified target platforms will default to // ZoomPageTransitionsBuilder(). pageTransitionsTheme: const PageTransitionsTheme( builders: { TargetPlatform.iOS: CupertinoPageTransitionsBuilder(), TargetPlatform.linux: OpenUpwardsPageTransitionsBuilder(), TargetPlatform.macOS: FadeUpwardsPageTransitionsBuilder(), }, ), ), home: const HomePage(), ); } } class HomePage extends StatelessWidget { const HomePage({super.key}); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.blueGrey, body: Center( child: ElevatedButton( onPressed: () { Navigator.of(context).push( MaterialPageRoute( builder: (BuildContext context) => const SecondPage(), ), ); }, child: const Text('To SecondPage'), ), ), ); } } class SecondPage extends StatelessWidget { const SecondPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.purple[200], body: Center( child: ElevatedButton( onPressed: () { Navigator.of(context).pop(); }, child: const Text('Back to HomePage'), ), ), ); } }