diff --git a/packages/flutter/lib/src/cupertino/sheet.dart b/packages/flutter/lib/src/cupertino/sheet.dart index 797f120fe2..d1a46361db 100644 --- a/packages/flutter/lib/src/cupertino/sheet.dart +++ b/packages/flutter/lib/src/cupertino/sheet.dart @@ -449,7 +449,7 @@ class _CupertinoSheetTransitionState extends State { /// `CupertinoSheetRoute`, with optional nested navigation built in. class CupertinoSheetRoute extends PageRoute with _CupertinoSheetRouteTransitionMixin { /// Creates a page route that displays an iOS styled sheet. - CupertinoSheetRoute({required this.builder}); + CupertinoSheetRoute({super.settings, required this.builder}); /// Builds the primary contents of the sheet route. final WidgetBuilder builder; diff --git a/packages/flutter/test/cupertino/sheet_test.dart b/packages/flutter/test/cupertino/sheet_test.dart index 968676a208..8c5bad026d 100644 --- a/packages/flutter/test/cupertino/sheet_test.dart +++ b/packages/flutter/test/cupertino/sheet_test.dart @@ -609,6 +609,46 @@ void main() { expect(find.text('Page 2'), findsNothing); }); + testWidgets('sheet has route settings', (WidgetTester tester) async { + await tester.pumpWidget( + CupertinoApp( + initialRoute: '/', + onGenerateRoute: (RouteSettings settings) { + if (settings.name == '/') { + return PageRouteBuilder( + pageBuilder: ( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + ) { + return CupertinoPageScaffold( + navigationBar: const CupertinoNavigationBar(middle: Text('Page 1')), + child: Container(), + ); + }, + ); + } + return CupertinoSheetRoute( + builder: (BuildContext context) { + return CupertinoPageScaffold( + navigationBar: CupertinoNavigationBar(middle: Text('Page: ${settings.name}')), + child: Container(), + ); + }, + ); + }, + ), + ); + + expect(find.text('Page 1'), findsOneWidget); + expect(find.text('Page 2'), findsNothing); + + tester.state(find.byType(Navigator)).pushNamed('/next'); + await tester.pumpAndSettle(); + + expect(find.text('Page: /next'), findsOneWidget); + }); + group('drag dismiss gesture', () { Widget dragGestureApp(GlobalKey homeScaffoldKey, GlobalKey sheetScaffoldKey) { return CupertinoApp(