Difference between pageBuilder and transitionsBuilder typedef parameters of PageRouteBuilder

394

The docs in routes.dart:


  /// [buildPage] is only called when the route is first built, and rarely
  /// thereafter. In particular, it is not automatically called again when the
  /// route's state changes unless it uses [ModalRoute.of]. For a builder that
  /// is called every time the route's state changes, consider
  /// [buildTransitions]. For widgets that change their behavior when the
  /// route's state changes, consider [ModalRoute.of] to obtain a reference to
  /// the route; this will cause the widget to be rebuilt each time the route
  /// changes state.
  ///
  /// In general, [buildPage] should be used to build the page contents, and
  /// [buildTransitions] for the widgets that change as the page is brought in
  /// and out of view. Avoid using [buildTransitions] for content that never
  /// changes; building such content once from [buildPage] is more efficient.

  /// The [buildTransitions] method, in contrast to [buildPage], is called each
  /// time the [Route]'s state changes (e.g. the value of [canPop]).
  ///
  /// The [buildTransitions] method is typically used to define transitions
  /// that animate the new topmost route's comings and goings. When the
  /// [Navigator] pushes a route on the top of its stack, the new route's
  /// primary [animation] runs from 0.0 to 1.0. When the Navigator pops the
  /// topmost route, e.g. because the use pressed the back button, the
  /// primary animation runs from 1.0 to 0.0.
Share:
394
Shubhamhackz
Author by

Shubhamhackz

🔭 I’m currently working on few flutter projects 👯 I’m looking to collaborate on open source projects 📝 I regulary write articles on https://medium.com/@shubhamhackzz 💬 Ask me about flutter, dart and open source 🌱 I’m currently learning Node.js and Express 📫 Through me a mail at [email protected] ⚡ Fun fact Google India Scholar 2018 (Android)

Updated on December 08, 2022

Comments

  • Shubhamhackz
    Shubhamhackz over 1 year

    According to the official docs the pageBuilder parameter is used to build the primary route content and the transitionsBuilder parameter is used to build the route's transition.

    So both of them have different jobs but if pageBuilder is use to build the primary route content then why it also declares two Animation parameter in its typedef RoutePageBuilder, also in the transitionBuilder typedef RouteTransitionBuilder, there are two Animation parameters declared animation and secondaryAnimation. What is the difference between those two Animations and how we can use them?