From 842f9da36a17ed0e65e28df803378ae825981037 Mon Sep 17 00:00:00 2001 From: Neil Guo Date: Thu, 17 Sep 2020 10:15:57 +0800 Subject: [PATCH] [animations] Adds opaque argument to OpenContainer. --- packages/animations/lib/src/open_container.dart | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/animations/lib/src/open_container.dart b/packages/animations/lib/src/open_container.dart index 52743229342d..48c7682e7e7d 100644 --- a/packages/animations/lib/src/open_container.dart +++ b/packages/animations/lib/src/open_container.dart @@ -96,6 +96,7 @@ class OpenContainer extends StatefulWidget { this.transitionDuration = const Duration(milliseconds: 300), this.transitionType = ContainerTransitionType.fade, this.useRootNavigator = false, + this.opaque = true, }) : assert(closedColor != null), assert(openColor != null), assert(closedElevation != null), @@ -107,6 +108,7 @@ class OpenContainer extends StatefulWidget { assert(tappable != null), assert(transitionType != null), assert(useRootNavigator != null), + assert(opaque != null), super(key: key); /// Background color of the container while it is closed. @@ -246,6 +248,11 @@ class OpenContainer extends StatefulWidget { /// to the nearest navigator. final bool useRootNavigator; + /// Whether the route obscures previous routes when the transition is complete. + /// When [opaque] is true, the route obscures previous routes. + /// By default, [opaque] is true. + final bool opaque; + @override _OpenContainerState createState() => _OpenContainerState(); } @@ -281,6 +288,7 @@ class _OpenContainerState extends State> { transitionDuration: widget.transitionDuration, transitionType: widget.transitionType, useRootNavigator: widget.useRootNavigator, + opaque: widget.opaque, )); if (widget.onClosed != null) { widget.onClosed(data); @@ -394,6 +402,7 @@ class _OpenContainerRoute extends ModalRoute { @required this.transitionDuration, @required this.transitionType, @required this.useRootNavigator, + this.opaque = true, }) : assert(closedColor != null), assert(openColor != null), assert(closedElevation != null), @@ -405,6 +414,7 @@ class _OpenContainerRoute extends ModalRoute { assert(closedBuilderKey != null), assert(transitionType != null), assert(useRootNavigator != null), + assert(opaque != null), _elevationTween = Tween( begin: closedElevation, end: openElevation, @@ -546,6 +556,8 @@ class _OpenContainerRoute extends ModalRoute { @override final Duration transitionDuration; + @override + final bool opaque; final ContainerTransitionType transitionType; final bool useRootNavigator; @@ -848,9 +860,6 @@ class _OpenContainerRoute extends ModalRoute { @override Color get barrierColor => null; - @override - bool get opaque => true; - @override bool get barrierDismissible => false;