mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Add fullscreenDialog argument in PageRouteBuilder (#40161)
This commit is contained in:
parent
c19e553d64
commit
964dc1fc30
@ -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);
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user