动画路线出去被替换

动画路线出去被替换,第1张

动画路线出去/被替换

从Flutter源代码注释中:

/// Signature for the [PageRouteBuilder] function that builds the route's/// transitions.////// See [ModalRoute.buildTransitions] for complete definition of the parameters.typedef Widget RouteTransitionsBuilder(BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child);

并进一步:

  /// We've used [PageRouteBuilder] to demonstrate the [buildTransitions] method  /// here. The body of an override of the [buildTransitions] method would be  /// defined in the same way.  ///  /// When the [Navigator] pushes a route on the top of its stack, the  /// [secondaryAnimation] can be used to define how the route that was on  /// the top of the stack leaves the screen. Similarly when the topmost route  /// is popped, the secondaryAnimation can be used to define how the route  /// below it reappears on the screen. When the Navigator pushes a new route  /// on the top of its stack, the old topmost route's secondaryAnimation  /// runs from 0.0 to 1.0.  When the Navigator pops the topmost route, the  /// secondaryAnimation for the route below it runs from 1.0 to 0.0.  ///  /// The example below adds a transition that's driven by the  /// [secondaryAnimation]. When this route disappears because a new route has  /// been pushed on top of it, it translates in the opposite direction of  /// the new route. Likewise when the route is exposed because the topmost  /// route has been popped off.  ///  /// ```dart  ///   transitionsBuilder: (  ///       BuildContext context,  ///       Animation<double> animation,  ///       Animation<double> secondaryAnimation,  ///       Widget child,  ///   ) {  ///     return new SlideTransition(  ///       position: new AlignmentTween(  ///         begin: const Offset(0.0, 1.0),  ///         end: Offset.zero,  ///       ).animate(animation),  ///       child: new SlideTransition(  ///         position: new TweenOffset(  ///begin: Offset.zero,  ///end: const Offset(0.0, 1.0),  ///         ).animate(secondaryAnimation),  ///         child: child,  ///       ),  ///     );  ///   }  /// ```  ///  /// In practice the `secondaryAnimation` is used pretty rarely.  ///  /// The arguments to this method are as follows:  ///  ///  * `context`: The context in which the route is being built.  ///  * [animation]: 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 this animation runs from 1.0 to 0.0.  ///  * [secondaryAnimation]: When the Navigator pushes a new route  ///    on the top of its stack, the old topmost route's [secondaryAnimation]  ///    runs from 0.0 to 1.0.  When the [Navigator] pops the topmost route, the  ///    [secondaryAnimation] for the route below it runs from 1.0 to 0.0.  ///  * `child`, the page contents.  ///  /// See also:  ///  ///  * [buildPage], which is used to describe the actual contents of the page,  ///    and whose result is passed to the `child` argument of this method.

我个人的建议是文档模糊不清或缺少代码;)

最好



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5103497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存