Commit 964dc1fc authored by imzyy's avatar imzyy Committed by Michael Goderbauer

Add fullscreenDialog argument in PageRouteBuilder (#40161)

parent c19e553d
......@@ -56,7 +56,7 @@ class PageRouteBuilder<T> extends PageRoute<T> {
/// Creates a route that delegates to builder callbacks.
///
/// The [pageBuilder], [transitionsBuilder], [opaque], [barrierDismissible],
/// and [maintainState] arguments must not be null.
/// [maintainState], and [fullscreenDialog] arguments must not be null.
PageRouteBuilder({
RouteSettings settings,
@required this.pageBuilder,
......@@ -67,12 +67,14 @@ class PageRouteBuilder<T> extends PageRoute<T> {
this.barrierColor,
this.barrierLabel,
this.maintainState = true,
bool fullscreenDialog = false,
}) : assert(pageBuilder != null),
assert(transitionsBuilder != null),
assert(opaque != null),
assert(barrierDismissible != null),
assert(maintainState != null),
assert(opaque != null),
super(settings: settings);
assert(fullscreenDialog != null),
super(settings: settings, fullscreenDialog: fullscreenDialog);
/// Used build the route's primary contents.
///
......
......@@ -568,6 +568,15 @@ void main() {
);
}
PageRoute<void> pageRouteBuilder() {
return PageRouteBuilder<void>(
pageBuilder: (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation) {
return Scaffold(appBar: AppBar(), body: const Text('Page 2'));
},
fullscreenDialog: true,
);
}
PageRoute<void> customPageRouteBuilder() {
return _CustomPageRoute<void>(
builder: (BuildContext context) {
......@@ -589,6 +598,18 @@ void main() {
await expectCloseIcon(tester, TargetPlatform.iOS, Icons.close, materialRouteBuilder);
});
testWidgets('Close button shows correctly with PageRouteBuilder on Android', (WidgetTester tester) async {
await expectCloseIcon(tester, TargetPlatform.android, Icons.close, pageRouteBuilder);
});
testWidgets('Close button shows correctly with PageRouteBuilder on Fuchsia', (WidgetTester tester) async {
await expectCloseIcon(tester, TargetPlatform.fuchsia, Icons.close, pageRouteBuilder);
});
testWidgets('Close button shows correctly with PageRouteBuilder on iOS', (WidgetTester tester) async {
await expectCloseIcon(tester, TargetPlatform.iOS, Icons.close, pageRouteBuilder);
});
testWidgets('Close button shows correctly with custom page route on Android', (WidgetTester tester) async {
await expectCloseIcon(tester, TargetPlatform.android, Icons.close, customPageRouteBuilder);
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment