Prepare flutter_gallery for use_super_parameters (#100515)

diff --git a/dev/integration_tests/flutter_gallery/lib/demo/animation/home.dart b/dev/integration_tests/flutter_gallery/lib/demo/animation/home.dart
index 56431ff..64fc503 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/animation/home.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/animation/home.dart
@@ -75,12 +75,10 @@
 
 class _StatusBarPaddingSliver extends SingleChildRenderObjectWidget {
   const _StatusBarPaddingSliver({
-    Key? key,
     required this.maxHeight,
     this.scrollFactor = 5.0,
   }) : assert(maxHeight >= 0.0),
-       assert(scrollFactor >= 1.0),
-       super(key: key);
+       assert(scrollFactor >= 1.0);
 
   final double maxHeight;
   final double scrollFactor;
@@ -260,7 +258,6 @@
 
 class _AllSectionsView extends AnimatedWidget {
   _AllSectionsView({
-    Key? key,
     required this.sectionIndex,
     required this.sections,
     required this.selectedIndex,
@@ -271,7 +268,7 @@
   }) : assert(sectionCards.length == sections.length),
        assert(sectionIndex >= 0 && sectionIndex < sections.length),
        assert(selectedIndex.value! >= 0.0 && selectedIndex.value! < sections.length.toDouble()),
-       super(key: key, listenable: selectedIndex);
+       super(listenable: selectedIndex);
 
   final int sectionIndex;
   final List<Section> sections;
@@ -361,9 +358,9 @@
 // visible.
 class _SnappingScrollPhysics extends ClampingScrollPhysics {
   const _SnappingScrollPhysics({
-    ScrollPhysics? parent,
+    super.parent,
     required this.midScrollOffset,
-  }) : super(parent: parent);
+  });
 
   final double midScrollOffset;
 
@@ -415,7 +412,7 @@
 }
 
 class AnimationDemoHome extends StatefulWidget {
-  const AnimationDemoHome({ Key? key }) : super(key: key);
+  const AnimationDemoHome({ super.key });
 
   static const String routeName = '/animation';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/animation/widgets.dart b/dev/integration_tests/flutter_gallery/lib/demo/animation/widgets.dart
index 2c0ad69..9b4a520 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/animation/widgets.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/animation/widgets.dart
@@ -10,8 +10,7 @@
 
 // The card for a single section. Displays the section's gradient and background image.
 class SectionCard extends StatelessWidget {
-  const SectionCard({ Key? key, required this.section })
-    : super(key: key);
+  const SectionCard({ super.key, required this.section });
 
   final Section section;
 
@@ -45,12 +44,11 @@
 // offset a little. It's supposed to look sort-of 3D.
 class SectionTitle extends StatelessWidget {
   const SectionTitle({
-    Key? key,
+    super.key,
     required this.section,
     required this.scale,
     required this.opacity,
-  }) : assert(opacity >= 0.0 && opacity <= 1.0),
-       super(key: key);
+  }) : assert(opacity >= 0.0 && opacity <= 1.0);
 
   final Section section;
   final double scale;
@@ -94,7 +92,7 @@
 
 // Small horizontal bar that indicates the selected section.
 class SectionIndicator extends StatelessWidget {
-  const SectionIndicator({ Key? key, this.opacity = 1.0 }) : super(key: key);
+  const SectionIndicator({ super.key, this.opacity = 1.0 });
 
   final double opacity;
 
@@ -112,10 +110,9 @@
 
 // Display a single SectionDetail.
 class SectionDetailView extends StatelessWidget {
-  SectionDetailView({ Key? key, required this.detail })
+  SectionDetailView({ super.key, required this.detail })
     : assert(detail.imageAsset != null),
-      assert((detail.imageAsset ?? detail.title) != null),
-      super(key: key);
+      assert((detail.imageAsset ?? detail.title) != null);
 
   final SectionDetail detail;
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/animation_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/animation_demo.dart
index f690509..a31b2e7 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/animation_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/animation_demo.dart
@@ -7,7 +7,7 @@
 import 'animation/home.dart';
 
 class AnimationDemo extends StatelessWidget {
-  const AnimationDemo({Key? key}) : super(key: key);
+  const AnimationDemo({super.key});
 
   static const String routeName = '/animation';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/calculator/home.dart b/dev/integration_tests/flutter_gallery/lib/demo/calculator/home.dart
index 96c1dcc..ea5eb8c 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/calculator/home.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/calculator/home.dart
@@ -7,7 +7,7 @@
 import 'logic.dart';
 
 class Calculator extends StatefulWidget {
-  const Calculator({Key? key}) : super(key: key);
+  const Calculator({super.key});
 
   @override
   State<Calculator> createState() => CalculatorState();
@@ -138,7 +138,7 @@
 }
 
 class CalcDisplay extends StatelessWidget {
-  const CalcDisplay({ Key? key, this.content}) : super(key: key);
+  const CalcDisplay({ super.key, this.content});
 
   final String? content;
 
@@ -154,7 +154,7 @@
 }
 
 class KeyPad extends StatelessWidget {
-  const KeyPad({ Key? key, this.calcState }) : super(key: key);
+  const KeyPad({ super.key, this.calcState });
 
   final CalculatorState? calcState;
 
@@ -222,7 +222,7 @@
 }
 
 class KeyRow extends StatelessWidget {
-  const KeyRow(this.keys, {Key? key}) : super(key: key);
+  const KeyRow(this.keys, {super.key});
 
   final List<Widget> keys;
 
@@ -238,7 +238,7 @@
 }
 
 class CalcKey extends StatelessWidget {
-  const CalcKey(this.text, this.onTap, {Key? key}) : super(key: key);
+  const CalcKey(this.text, this.onTap, {super.key});
 
   final String text;
   final GestureTapCallback onTap;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/calculator/logic.dart b/dev/integration_tests/flutter_gallery/lib/demo/calculator/logic.dart
index 8cb999c..61ba88f 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/calculator/logic.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/calculator/logic.dart
@@ -17,7 +17,7 @@
 
 /// A token that represents a number.
 class NumberToken extends ExpressionToken {
-  NumberToken(String stringRep, this.number) : super(stringRep);
+  NumberToken(String super.stringRep, this.number);
 
   NumberToken.fromNumber(num number) : this('$number', number);
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/calculator_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/calculator_demo.dart
index b8842ff..f3f00aa 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/calculator_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/calculator_demo.dart
@@ -7,7 +7,7 @@
 import 'calculator/home.dart';
 
 class CalculatorDemo extends StatelessWidget {
-  const CalculatorDemo({Key? key}) : super(key: key);
+  const CalculatorDemo({super.key});
 
   static const String routeName = '/calculator';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/colors_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/colors_demo.dart
index f3fb6c3..a7a2332 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/colors_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/colors_demo.dart
@@ -42,11 +42,11 @@
 
 class ColorItem extends StatelessWidget {
   const ColorItem({
-    Key? key,
+    super.key,
     required this.index,
     required this.color,
     this.prefix = '',
-  }) : super(key: key);
+  });
 
   final int index;
   final Color color;
@@ -80,10 +80,9 @@
 
 class PaletteTabView extends StatelessWidget {
   PaletteTabView({
-    Key? key,
+    super.key,
     required this.colors,
-  }) : assert(colors.isValid),
-       super(key: key);
+  }) : assert(colors.isValid);
 
   final Palette colors;
 
@@ -119,7 +118,7 @@
 }
 
 class ColorsDemo extends StatelessWidget {
-  const ColorsDemo({Key? key}) : super(key: key);
+  const ColorsDemo({super.key});
 
   static const String routeName = '/colors';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/contacts_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/contacts_demo.dart
index b8f996b..c9307a7 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/contacts_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/contacts_demo.dart
@@ -6,7 +6,7 @@
 import 'package:flutter/services.dart';
 
 class _ContactCategory extends StatelessWidget {
-  const _ContactCategory({ Key? key, this.icon, this.children }) : super(key: key);
+  const _ContactCategory({ this.icon, this.children });
 
   final IconData? icon;
   final List<Widget>? children;
@@ -42,9 +42,8 @@
 }
 
 class _ContactItem extends StatelessWidget {
-  const _ContactItem({ Key? key, this.icon, required this.lines, this.tooltip, this.onPressed })
-    : assert(lines.length > 1),
-      super(key: key);
+  const _ContactItem({ this.icon, required this.lines, this.tooltip, this.onPressed })
+    : assert(lines.length > 1);
 
   final IconData? icon;
   final List<String> lines;
@@ -86,7 +85,7 @@
 }
 
 class ContactsDemo extends StatefulWidget {
-  const ContactsDemo({Key? key}) : super(key: key);
+  const ContactsDemo({super.key});
 
   static const String routeName = '/contacts';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_activity_indicator_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_activity_indicator_demo.dart
index 1b267ac..7d54255 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_activity_indicator_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_activity_indicator_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class CupertinoProgressIndicatorDemo extends StatelessWidget {
-  const CupertinoProgressIndicatorDemo({Key? key}) : super(key: key);
+  const CupertinoProgressIndicatorDemo({super.key});
 
   static const String routeName = '/cupertino/progress_indicator';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_alert_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_alert_demo.dart
index 045665d..d9d098e 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_alert_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_alert_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class CupertinoAlertDemo extends StatefulWidget {
-  const CupertinoAlertDemo({Key? key}) : super(key: key);
+  const CupertinoAlertDemo({super.key});
 
   static const String routeName = '/cupertino/alert';
 
@@ -198,7 +198,7 @@
 }
 
 class CupertinoDessertDialog extends StatelessWidget {
-  const CupertinoDessertDialog({Key? key, this.title, this.content}) : super(key: key);
+  const CupertinoDessertDialog({super.key, this.title, this.content});
 
   final Widget? title;
   final Widget? content;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_buttons_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_buttons_demo.dart
index 43e0a0c..54a53ce 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_buttons_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_buttons_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class CupertinoButtonsDemo extends StatefulWidget {
-  const CupertinoButtonsDemo({Key? key}) : super(key: key);
+  const CupertinoButtonsDemo({super.key});
 
   static const String routeName = '/cupertino/buttons';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart
index e10e307..6894963 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart
@@ -32,14 +32,13 @@
 const int _kChildCount = 50;
 
 class CupertinoNavigationDemo extends StatelessWidget {
-  CupertinoNavigationDemo({ Key? key, this.randomSeed })
+  CupertinoNavigationDemo({ super.key, this.randomSeed })
       : colorItems = List<Color>.generate(_kChildCount, (int index) {
           return coolColors[math.Random(randomSeed).nextInt(coolColors.length)];
         }) ,
         colorNameItems = List<String>.generate(_kChildCount, (int index) {
           return coolColorNames[math.Random(randomSeed).nextInt(coolColorNames.length)];
-        }),
-        super(key: key);
+        });
 
   static const String routeName = '/cupertino/navigation';
 
@@ -105,7 +104,7 @@
 }
 
 class ExitButton extends StatelessWidget {
-  const ExitButton({Key? key}) : super(key: key);
+  const ExitButton({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -135,11 +134,11 @@
 
 class CupertinoDemoTab1 extends StatelessWidget {
   const CupertinoDemoTab1({
-    Key? key,
+    super.key,
     this.colorItems,
     this.colorNameItems,
     this.randomSeed,
-  }) : super(key: key);
+  });
 
   final List<Color>? colorItems;
   final List<String>? colorNameItems;
@@ -186,13 +185,13 @@
 
 class Tab1RowItem extends StatelessWidget {
   const Tab1RowItem({
-    Key? key,
+    super.key,
     this.index,
     this.lastItem,
     this.color,
     this.colorName,
     this.randomSeed,
-  }) : super(key: key);
+  });
 
   final int? index;
   final bool? lastItem;
@@ -290,7 +289,7 @@
 }
 
 class Tab1ItemPage extends StatefulWidget {
-  const Tab1ItemPage({Key? key, this.color, this.colorName, this.index, this.randomSeed}) : super(key: key);
+  const Tab1ItemPage({super.key, this.color, this.colorName, this.index, this.randomSeed});
 
   final Color? color;
   final String? colorName;
@@ -437,7 +436,7 @@
 }
 
 class CupertinoDemoTab2 extends StatelessWidget {
-  const CupertinoDemoTab2({Key? key}) : super(key: key);
+  const CupertinoDemoTab2({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -461,7 +460,7 @@
 }
 
 class Tab2Header extends StatelessWidget {
-  const Tab2Header({Key? key}) : super(key: key);
+  const Tab2Header({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -589,7 +588,7 @@
 }
 
 class Tab2ConversationBubble extends StatelessWidget {
-  const Tab2ConversationBubble({Key? key, this.text, this.color}) : super(key: key);
+  const Tab2ConversationBubble({super.key, this.text, this.color});
 
   final String? text;
   final Tab2ConversationBubbleColor? color;
@@ -633,7 +632,7 @@
 }
 
 class Tab2ConversationAvatar extends StatelessWidget {
-  const Tab2ConversationAvatar({Key? key, this.text, this.color}) : super(key: key);
+  const Tab2ConversationAvatar({super.key, this.text, this.color});
 
   final String? text;
   final Color? color;
@@ -672,7 +671,7 @@
 }
 
 class Tab2ConversationRow extends StatelessWidget {
-  const Tab2ConversationRow({Key? key, this.avatar, this.text}) : super(key: key);
+  const Tab2ConversationRow({super.key, this.avatar, this.text});
 
   final Tab2ConversationAvatar? avatar;
   final String? text;
@@ -742,7 +741,7 @@
 }
 
 class CupertinoDemoTab3 extends StatelessWidget {
-  const CupertinoDemoTab3({Key? key}) : super(key: key);
+  const CupertinoDemoTab3({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -794,7 +793,7 @@
 }
 
 class Tab3Dialog extends StatelessWidget {
-  const Tab3Dialog({Key? key}) : super(key: key);
+  const Tab3Dialog({super.key});
 
   @override
   Widget build(BuildContext context) {
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_picker_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_picker_demo.dart
index 8843f39..98da4d1 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_picker_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_picker_demo.dart
@@ -12,7 +12,7 @@
 const double _kPickerItemHeight = 32.0;
 
 class CupertinoPickerDemo extends StatefulWidget {
-  const CupertinoPickerDemo({Key? key}) : super(key: key);
+  const CupertinoPickerDemo({super.key});
 
   static const String routeName = '/cupertino/picker';
 
@@ -22,9 +22,8 @@
 
 class _BottomPicker extends StatelessWidget {
   const _BottomPicker({
-    Key? key,
     required this.child,
-  }) : super(key: key);
+  });
 
   final Widget child;
 
@@ -54,9 +53,8 @@
 
 class _Menu extends StatelessWidget {
   const _Menu({
-    Key? key,
     required this.children,
-  }) : super(key: key);
+  });
 
   final List<Widget> children;
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_refresh_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_refresh_demo.dart
index 16f876c..2528525 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_refresh_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_refresh_demo.dart
@@ -9,7 +9,7 @@
 import '../../gallery/demo.dart';
 
 class CupertinoRefreshControlDemo extends StatefulWidget {
-  const CupertinoRefreshControlDemo({Key? key}) : super(key: key);
+  const CupertinoRefreshControlDemo({super.key});
 
   static const String routeName = '/cupertino/refresh';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_segmented_control_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_segmented_control_demo.dart
index 351e3b2..f8a1317 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_segmented_control_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_segmented_control_demo.dart
@@ -12,7 +12,7 @@
 const Color _kAmbientShadowOpacity = Color(0x1F000000); // alpha = 0.12
 
 class CupertinoSegmentedControlDemo extends StatefulWidget {
-  const CupertinoSegmentedControlDemo({Key? key}) : super(key: key);
+  const CupertinoSegmentedControlDemo({super.key});
 
   static const String routeName = 'cupertino/segmented_control';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_slider_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_slider_demo.dart
index 1b28d0e..a5183fe 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_slider_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_slider_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class CupertinoSliderDemo extends StatefulWidget {
-  const CupertinoSliderDemo({Key? key}) : super(key: key);
+  const CupertinoSliderDemo({super.key});
 
   static const String routeName = '/cupertino/slider';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_switch_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_switch_demo.dart
index ccff160..642678a 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_switch_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_switch_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class CupertinoSwitchDemo extends StatefulWidget {
-  const CupertinoSwitchDemo({Key? key}) : super(key: key);
+  const CupertinoSwitchDemo({super.key});
 
   static const String routeName = '/cupertino/switch';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_text_field_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_text_field_demo.dart
index a1cd7f7..bfc088e 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_text_field_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/cupertino/cupertino_text_field_demo.dart
@@ -5,7 +5,7 @@
 import 'package:flutter/cupertino.dart';
 
 class CupertinoTextFieldDemo extends StatefulWidget {
-  const CupertinoTextFieldDemo({Key? key}) : super(key: key);
+  const CupertinoTextFieldDemo({super.key});
 
   static const String routeName = '/cupertino/text_fields';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/fortnightly/fortnightly.dart b/dev/integration_tests/flutter_gallery/lib/demo/fortnightly/fortnightly.dart
index 7f82121..7892bfa 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/fortnightly/fortnightly.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/fortnightly/fortnightly.dart
@@ -5,7 +5,7 @@
 import 'package:flutter/material.dart';
 
 class FortnightlyDemo extends StatelessWidget {
-  const FortnightlyDemo({Key? key}) : super(key: key);
+  const FortnightlyDemo({super.key});
 
   static const String routeName = '/fortnightly';
 
@@ -33,7 +33,7 @@
 }
 
 class ShortAppBar extends StatelessWidget {
-  const ShortAppBar({ Key? key, this.onBackPressed }) : super(key: key);
+  const ShortAppBar({ super.key, this.onBackPressed });
 
   final VoidCallback? onBackPressed;
 
@@ -68,7 +68,7 @@
 }
 
 class FruitPage extends StatelessWidget {
-  const FruitPage({Key? key}) : super(key: key);
+  const FruitPage({super.key});
 
   static final String paragraph1 = '''
 Have you ever held a quince? It's strange;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/images_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/images_demo.dart
index b190b1d..2cd95fc 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/images_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/images_demo.dart
@@ -7,7 +7,7 @@
 import '../gallery/demo.dart';
 
 class ImagesDemo extends StatelessWidget {
-  const ImagesDemo({Key? key}) : super(key: key);
+  const ImagesDemo({super.key});
 
   static const String routeName = '/images';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/backdrop_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/backdrop_demo.dart
index 02ff8c4..c5ba42f 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/backdrop_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/backdrop_demo.dart
@@ -95,7 +95,7 @@
 ];
 
 class CategoryView extends StatelessWidget {
-  const CategoryView({ Key? key, this.category }) : super(key: key);
+  const CategoryView({ super.key, this.category });
 
   final Category? category;
 
@@ -149,13 +149,13 @@
 // BackdropDemo.
 class BackdropPanel extends StatelessWidget {
   const BackdropPanel({
-    Key? key,
+    super.key,
     this.onTap,
     this.onVerticalDragUpdate,
     this.onVerticalDragEnd,
     this.title,
     this.child,
-  }) : super(key: key);
+  });
 
   final VoidCallback? onTap;
   final GestureDragUpdateCallback? onVerticalDragUpdate;
@@ -204,9 +204,9 @@
 // Cross fades between 'Select a Category' and 'Asset Viewer'.
 class BackdropTitle extends AnimatedWidget {
   const BackdropTitle({
-    Key? key,
-    required Animation<double> listenable,
-  }) : super(key: key, listenable: listenable);
+    super.key,
+    required Animation<double> super.listenable,
+  });
 
   @override
   Widget build(BuildContext context) {
@@ -239,7 +239,7 @@
 
 // This widget is essentially the backdrop itself.
 class BackdropDemo extends StatefulWidget {
-  const BackdropDemo({Key? key}) : super(key: key);
+  const BackdropDemo({super.key});
 
   static const String routeName = '/material/backdrop';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/banner_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/banner_demo.dart
index 5d30052..e555140 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/banner_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/banner_demo.dart
@@ -13,7 +13,7 @@
 }
 
 class BannerDemo extends StatefulWidget {
-  const BannerDemo({ Key? key }) : super(key: key);
+  const BannerDemo({ super.key });
 
   static const String routeName = '/material/banner';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
index e299f69..e397396 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class BottomAppBarDemo extends StatefulWidget {
-  const BottomAppBarDemo({Key? key}) : super(key: key);
+  const BottomAppBarDemo({super.key});
 
   static const String routeName = '/material/bottom_app_bar';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/bottom_navigation_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/bottom_navigation_demo.dart
index ea76774..9fe1639 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/bottom_navigation_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/bottom_navigation_demo.dart
@@ -75,7 +75,7 @@
 }
 
 class CustomIcon extends StatelessWidget {
-  const CustomIcon({Key? key}) : super(key: key);
+  const CustomIcon({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -90,7 +90,7 @@
 }
 
 class CustomInactiveIcon extends StatelessWidget {
-  const CustomInactiveIcon({Key? key}) : super(key: key);
+  const CustomInactiveIcon({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -107,7 +107,7 @@
 }
 
 class BottomNavigationDemo extends StatefulWidget {
-  const BottomNavigationDemo({Key? key}) : super(key: key);
+  const BottomNavigationDemo({super.key});
 
   static const String routeName = '/material/bottom_navigation';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/buttons_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/buttons_demo.dart
index 8cd0bcc..af22289 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/buttons_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/buttons_demo.dart
@@ -46,7 +46,7 @@
 const String _actionCode = 'buttons_action';
 
 class ButtonsDemo extends StatefulWidget {
-  const ButtonsDemo({Key? key}) : super(key: key);
+  const ButtonsDemo({super.key});
 
   static const String routeName = '/material/buttons';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/cards_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/cards_demo.dart
index f640f7e..9e00535 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/cards_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/cards_demo.dart
@@ -64,8 +64,7 @@
 ];
 
 class TravelDestinationItem extends StatelessWidget {
-  const TravelDestinationItem({ Key? key, required this.destination, this.shape })
-    : super(key: key);
+  const TravelDestinationItem({ super.key, required this.destination, this.shape });
 
   // This height will allow for all the Card's content to fit comfortably within the card.
   static const double height = 338.0;
@@ -99,8 +98,7 @@
 }
 
 class TappableTravelDestinationItem extends StatelessWidget {
-  const TappableTravelDestinationItem({ Key? key, required this.destination, this.shape })
-    : super(key: key);
+  const TappableTravelDestinationItem({ super.key, required this.destination, this.shape });
 
   // This height will allow for all the Card's content to fit comfortably within the card.
   static const double height = 298.0;
@@ -143,8 +141,7 @@
 }
 
 class SelectableTravelDestinationItem extends StatefulWidget {
-  const SelectableTravelDestinationItem({ Key? key, required this.destination, this.shape })
-    : super(key: key);
+  const SelectableTravelDestinationItem({ super.key, required this.destination, this.shape });
 
   final TravelDestination destination;
   final ShapeBorder? shape;
@@ -222,9 +219,9 @@
 
 class SectionTitle extends StatelessWidget {
   const SectionTitle({
-    Key? key,
+    super.key,
     this.title,
-  }) : super(key: key);
+  });
 
   final String? title;
 
@@ -241,8 +238,7 @@
 }
 
 class TravelDestinationContent extends StatelessWidget {
-  const TravelDestinationContent({ Key? key, required this.destination })
-    : super(key: key);
+  const TravelDestinationContent({ super.key, required this.destination });
 
   final TravelDestination destination;
 
@@ -339,7 +335,7 @@
 }
 
 class CardsDemo extends StatefulWidget {
-  const CardsDemo({Key? key}) : super(key: key);
+  const CardsDemo({super.key});
 
   static const String routeName = '/material/cards';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/chip_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/chip_demo.dart
index d897f79..386f18e 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/chip_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/chip_demo.dart
@@ -88,10 +88,9 @@
 
 class _ChipsTile extends StatelessWidget {
   const _ChipsTile({
-    Key? key,
     this.label,
     this.children,
-  }) : super(key: key);
+  });
 
   final String? label;
   final List<Widget>? children;
@@ -135,7 +134,7 @@
 }
 
 class ChipDemo extends StatefulWidget {
-  const ChipDemo({Key? key}) : super(key: key);
+  const ChipDemo({super.key});
 
   static const String routeName = '/material/chip';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/data_table_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/data_table_demo.dart
index c1bf0ba..b0d8dea 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/data_table_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/data_table_demo.dart
@@ -142,7 +142,7 @@
 }
 
 class DataTableDemo extends StatefulWidget {
-  const DataTableDemo({Key? key}) : super(key: key);
+  const DataTableDemo({super.key});
 
   static const String routeName = '/material/data-table';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart
index 8d03167..9737040 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/date_and_time_picker_demo.dart
@@ -9,12 +9,11 @@
 
 class _InputDropdown extends StatelessWidget {
   const _InputDropdown({
-    Key? key,
     this.labelText,
     this.valueText,
     this.valueStyle,
     this.onPressed,
-  }) : super(key: key);
+  });
 
   final String? labelText;
   final String? valueText;
@@ -47,13 +46,12 @@
 
 class _DateTimePicker extends StatelessWidget {
   const _DateTimePicker({
-    Key? key,
     this.labelText,
     this.selectedDate,
     this.selectedTime,
     this.selectDate,
     this.selectTime,
-  }) : super(key: key);
+  });
 
   final String? labelText;
   final DateTime? selectedDate;
@@ -111,7 +109,7 @@
 }
 
 class DateAndTimePickerDemo extends StatefulWidget {
-  const DateAndTimePickerDemo({Key? key}) : super(key: key);
+  const DateAndTimePickerDemo({super.key});
 
   static const String routeName = '/material/date-and-time-pickers';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/dialog_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/dialog_demo.dart
index ecd88b9..e5fb743 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/dialog_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/dialog_demo.dart
@@ -21,7 +21,7 @@
   'data to Google, even when no apps are running.';
 
 class DialogDemoItem extends StatelessWidget {
-  const DialogDemoItem({ Key? key, this.icon, this.color, this.text, this.onPressed }) : super(key: key);
+  const DialogDemoItem({ super.key, this.icon, this.color, this.text, this.onPressed });
 
   final IconData? icon;
   final Color? color;
@@ -46,7 +46,7 @@
 }
 
 class DialogDemo extends StatefulWidget {
-  const DialogDemo({Key? key}) : super(key: key);
+  const DialogDemo({super.key});
 
   static const String routeName = '/material/dialog';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/drawer_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/drawer_demo.dart
index 5060d58..5049bf6 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/drawer_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/drawer_demo.dart
@@ -13,7 +13,7 @@
 const String _kGalleryAssetsPackage = 'flutter_gallery_assets';
 
 class DrawerDemo extends StatefulWidget {
-  const DrawerDemo({Key? key}) : super(key: key);
+  const DrawerDemo({super.key});
 
   static const String routeName = '/material/drawer';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/elevation_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/elevation_demo.dart
index 9ac1a00..4d85177 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/elevation_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/elevation_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class ElevationDemo extends StatefulWidget {
-  const ElevationDemo({Key? key}) : super(key: key);
+  const ElevationDemo({super.key});
 
   static const String routeName = '/material/elevation';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/expansion_panels_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
index fd2592e..cad7f3b 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/expansion_panels_demo.dart
@@ -18,12 +18,12 @@
 
 class DualHeaderWithHint extends StatelessWidget {
   const DualHeaderWithHint({
-    Key? key,
+    super.key,
     this.name,
     this.value,
     this.hint,
     this.showHint,
-  }) : super(key: key);
+  });
 
   final String? name;
   final String? value;
@@ -81,12 +81,12 @@
 
 class CollapsibleBody extends StatelessWidget {
   const CollapsibleBody({
-    Key? key,
+    super.key,
     this.margin = EdgeInsets.zero,
     this.child,
     this.onSave,
     this.onCancel,
-  }) : super(key: key);
+  });
 
   final EdgeInsets margin;
   final Widget? child;
@@ -177,7 +177,7 @@
 }
 
 class ExpansionPanelsDemo extends StatefulWidget {
-  const ExpansionPanelsDemo({Key? key}) : super(key: key);
+  const ExpansionPanelsDemo({super.key});
 
   static const String routeName = '/material/expansion_panels';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/expansion_tile_list_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/expansion_tile_list_demo.dart
index 63ab6d4..f01043f 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/expansion_tile_list_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/expansion_tile_list_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class ExpansionTileListDemo extends StatelessWidget {
-  const ExpansionTileListDemo({Key? key}) : super(key: key);
+  const ExpansionTileListDemo({super.key});
 
   static const String routeName = '/material/expansion-tile-list';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
index 96642ee..511405f 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/full_screen_dialog_demo.dart
@@ -15,10 +15,9 @@
 }
 
 class DateTimeItem extends StatelessWidget {
-  DateTimeItem({ Key? key, required DateTime dateTime, required this.onChanged })
+  DateTimeItem({ super.key, required DateTime dateTime, required this.onChanged })
     : date = DateTime(dateTime.year, dateTime.month, dateTime.day),
-      time = TimeOfDay(hour: dateTime.hour, minute: dateTime.minute),
-      super(key: key);
+      time = TimeOfDay(hour: dateTime.hour, minute: dateTime.minute);
 
   final DateTime date;
   final TimeOfDay time;
@@ -93,7 +92,7 @@
 }
 
 class FullScreenDialogDemo extends StatefulWidget {
-  const FullScreenDialogDemo({Key? key}) : super(key: key);
+  const FullScreenDialogDemo({super.key});
 
   @override
   FullScreenDialogDemoState createState() => FullScreenDialogDemoState();
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/grid_list_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/grid_list_demo.dart
index 66ff307..6a0c1e1 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/grid_list_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/grid_list_demo.dart
@@ -38,7 +38,7 @@
 }
 
 class GridPhotoViewer extends StatefulWidget {
-  const GridPhotoViewer({ Key? key, this.photo }) : super(key: key);
+  const GridPhotoViewer({ super.key, this.photo });
 
   final Photo? photo;
 
@@ -155,12 +155,11 @@
 
 class GridDemoPhotoItem extends StatelessWidget {
   GridDemoPhotoItem({
-    Key? key,
+    super.key,
     required this.photo,
     required this.tileStyle,
     required this.onBannerTap,
-  }) : assert(photo.isValid),
-       super(key: key);
+  }) : assert(photo.isValid);
 
   final Photo photo;
   final GridDemoTileStyle tileStyle;
@@ -245,7 +244,7 @@
 }
 
 class GridListDemo extends StatefulWidget {
-  const GridListDemo({ Key? key }) : super(key: key);
+  const GridListDemo({ super.key });
 
   static const String routeName = '/material/grid-list';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/icons_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/icons_demo.dart
index 04259e5..8a7962a 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/icons_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/icons_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class IconsDemo extends StatefulWidget {
-  const IconsDemo({Key? key}) : super(key: key);
+  const IconsDemo({super.key});
 
   static const String routeName = '/material/icons';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/leave_behind_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/leave_behind_demo.dart
index 8530e0b..b622c63 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/leave_behind_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/leave_behind_demo.dart
@@ -33,7 +33,7 @@
 }
 
 class LeaveBehindDemo extends StatefulWidget {
-  const LeaveBehindDemo({ Key? key }) : super(key: key);
+  const LeaveBehindDemo({ super.key });
 
   static const String routeName = '/material/leave-behind';
 
@@ -188,13 +188,12 @@
 
 class _LeaveBehindListItem extends StatelessWidget {
   const _LeaveBehindListItem({
-    Key? key,
     required this.item,
     required this.onArchive,
     required this.onDelete,
     required this.dismissDirection,
     required this.confirmDismiss,
-  }) : super(key: key);
+  });
 
   final LeaveBehindItem item;
   final DismissDirection dismissDirection;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/list_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/list_demo.dart
index dce2bd4..e485755 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/list_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/list_demo.dart
@@ -21,7 +21,7 @@
 }
 
 class ListDemo extends StatefulWidget {
-  const ListDemo({ Key? key }) : super(key: key);
+  const ListDemo({ super.key });
 
   static const String routeName = '/material/list';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/menu_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/menu_demo.dart
index 2d4b8af..359337d 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/menu_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/menu_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class MenuDemo extends StatefulWidget {
-  const MenuDemo({ Key? key }) : super(key: key);
+  const MenuDemo({ super.key });
 
   static const String routeName = '/material/menu';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/modal_bottom_sheet_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/modal_bottom_sheet_demo.dart
index 314eeaf..db7dd54 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/modal_bottom_sheet_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/modal_bottom_sheet_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class ModalBottomSheetDemo extends StatelessWidget {
-  const ModalBottomSheetDemo({Key? key}) : super(key: key);
+  const ModalBottomSheetDemo({super.key});
 
   static const String routeName = '/material/modal-bottom-sheet';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/overscroll_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/overscroll_demo.dart
index 80b7e3e..91899df 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/overscroll_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/overscroll_demo.dart
@@ -11,7 +11,7 @@
 enum IndicatorType { overscroll, refresh }
 
 class OverscrollDemo extends StatefulWidget {
-  const OverscrollDemo({ Key? key }) : super(key: key);
+  const OverscrollDemo({ super.key });
 
   static const String routeName = '/material/overscroll';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/page_selector_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/page_selector_demo.dart
index 2c0b77e..b6a2574 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/page_selector_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/page_selector_demo.dart
@@ -74,7 +74,7 @@
 }
 
 class PageSelectorDemo extends StatelessWidget {
-  const PageSelectorDemo({Key? key}) : super(key: key);
+  const PageSelectorDemo({super.key});
 
   static const String routeName = '/material/page-selector';
   static final List<Icon> icons = <Icon>[
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/persistent_bottom_sheet_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/persistent_bottom_sheet_demo.dart
index 429ab84..fa8ff92 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/persistent_bottom_sheet_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/persistent_bottom_sheet_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class PersistentBottomSheetDemo extends StatefulWidget {
-  const PersistentBottomSheetDemo({Key? key}) : super(key: key);
+  const PersistentBottomSheetDemo({super.key});
 
   static const String routeName = '/material/persistent-bottom-sheet';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/progress_indicator_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/progress_indicator_demo.dart
index d7d242c..2d5b6e1 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/progress_indicator_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/progress_indicator_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class ProgressIndicatorDemo extends StatefulWidget {
-  const ProgressIndicatorDemo({Key? key}) : super(key: key);
+  const ProgressIndicatorDemo({super.key});
 
   static const String routeName = '/material/progress-indicator';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/reorderable_list_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/reorderable_list_demo.dart
index 7d5ac16..5aabed7 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/reorderable_list_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/reorderable_list_demo.dart
@@ -18,7 +18,7 @@
 }
 
 class ReorderableListDemo extends StatefulWidget {
-  const ReorderableListDemo({ Key? key }) : super(key: key);
+  const ReorderableListDemo({ super.key });
 
   static const String routeName = '/material/reorderable-list';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart
index ce30e86..f7cbdcf 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/scrollable_tabs_demo.dart
@@ -36,7 +36,7 @@
 ];
 
 class ScrollableTabsDemo extends StatefulWidget {
-  const ScrollableTabsDemo({Key? key}) : super(key: key);
+  const ScrollableTabsDemo({super.key});
 
   static const String routeName = '/material/scrollable-tabs';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/search_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/search_demo.dart
index 8ff1888..8b3c09f 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/search_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/search_demo.dart
@@ -7,7 +7,7 @@
 import '../../gallery/demo.dart';
 
 class SearchDemo extends StatefulWidget {
-  const SearchDemo({Key? key}) : super(key: key);
+  const SearchDemo({super.key});
 
   static const String routeName = '/material/search';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/selection_controls_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/selection_controls_demo.dart
index a2c4588..10f3de9 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/selection_controls_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/selection_controls_demo.dart
@@ -28,7 +28,7 @@
 const String _switchCode = 'selectioncontrols_switch';
 
 class SelectionControlsDemo extends StatefulWidget {
-  const SelectionControlsDemo({Key? key}) : super(key: key);
+  const SelectionControlsDemo({super.key});
 
   static const String routeName = '/material/selection-controls';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/slider_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/slider_demo.dart
index 42be8e2..dbab8c9 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/slider_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/slider_demo.dart
@@ -9,7 +9,7 @@
 import '../../gallery/demo.dart';
 
 class SliderDemo extends StatefulWidget {
-  const SliderDemo({Key? key}) : super(key: key);
+  const SliderDemo({super.key});
 
   static const String routeName = '/material/slider';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/snack_bar_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/snack_bar_demo.dart
index 8adf4cf..57eab94 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/snack_bar_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/snack_bar_demo.dart
@@ -19,7 +19,7 @@
   'By default snackbars automatically disappear after a few seconds ';
 
 class SnackBarDemo extends StatefulWidget {
-  const SnackBarDemo({ Key? key }) : super(key: key);
+  const SnackBarDemo({ super.key });
 
   static const String routeName = '/material/snack-bar';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/tabs_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/tabs_demo.dart
index 3f0df84..e461e37 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/tabs_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/tabs_demo.dart
@@ -137,7 +137,7 @@
 }
 
 class TabsDemo extends StatelessWidget {
-  const TabsDemo({Key? key}) : super(key: key);
+  const TabsDemo({super.key});
 
   static const String routeName = '/material/tabs';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/tabs_fab_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
index 49b3dad..c787a0e 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/tabs_fab_demo.dart
@@ -35,7 +35,7 @@
 ];
 
 class TabsFabDemo extends StatefulWidget {
-  const TabsFabDemo({Key? key}) : super(key: key);
+  const TabsFabDemo({super.key});
 
   static const String routeName = '/material/tabs-fab';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/text_form_field_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/text_form_field_demo.dart
index 3f80761..eeec453 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/text_form_field_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/text_form_field_demo.dart
@@ -9,7 +9,7 @@
 import '../../gallery/demo.dart';
 
 class TextFormFieldDemo extends StatefulWidget {
-  const TextFormFieldDemo({ Key? key }) : super(key: key);
+  const TextFormFieldDemo({ super.key });
 
   static const String routeName = '/material/text-form-field';
 
@@ -26,7 +26,7 @@
 
 class PasswordField extends StatefulWidget {
   const PasswordField({
-    Key? key,
+    super.key,
     this.fieldKey,
     this.hintText,
     this.labelText,
@@ -34,7 +34,7 @@
     this.onSaved,
     this.validator,
     this.onFieldSubmitted,
-  }) : super(key: key);
+  });
 
   final Key? fieldKey;
   final String? hintText;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/material/tooltip_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/material/tooltip_demo.dart
index d7ebaca..af66b74 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/material/tooltip_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/material/tooltip_demo.dart
@@ -12,7 +12,7 @@
   'apps accessible, like screen readers.';
 
 class TooltipDemo extends StatelessWidget {
-  const TooltipDemo({Key? key}) : super(key: key);
+  const TooltipDemo({super.key});
 
   static const String routeName = '/material/tooltips';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/pesto_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/pesto_demo.dart
index f280b23..8dc170f 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/pesto_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/pesto_demo.dart
@@ -5,7 +5,7 @@
 import 'package:flutter/material.dart';
 
 class PestoDemo extends StatelessWidget {
-  const PestoDemo({ Key? key }) : super(key: key);
+  const PestoDemo({ super.key });
 
   static const String routeName = '/pesto';
 
@@ -28,7 +28,7 @@
 );
 
 class PestoHome extends StatelessWidget {
-  const PestoHome({Key? key}) : super(key: key);
+  const PestoHome({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -37,7 +37,7 @@
 }
 
 class PestoFavorites extends StatelessWidget {
-  const PestoFavorites({Key? key}) : super(key: key);
+  const PestoFavorites({super.key});
 
   @override
   Widget build(BuildContext context) {
@@ -47,26 +47,21 @@
 
 class PestoStyle extends TextStyle {
   const PestoStyle({
-    double fontSize = 12.0,
-    FontWeight? fontWeight,
-    Color color = Colors.black87,
-    double? letterSpacing,
-    double? height,
+    double super.fontSize = 12.0,
+    super.fontWeight,
+    Color super.color = Colors.black87,
+    super.letterSpacing,
+    super.height,
   }) : super(
     inherit: false,
-    color: color,
     fontFamily: 'Raleway',
-    fontSize: fontSize,
-    fontWeight: fontWeight,
     textBaseline: TextBaseline.alphabetic,
-    letterSpacing: letterSpacing,
-    height: height,
   );
 }
 
 // Displays a grid of recipe cards.
 class RecipeGridPage extends StatefulWidget {
-  const RecipeGridPage({ Key? key, this.recipes }) : super(key: key);
+  const RecipeGridPage({ super.key, this.recipes });
 
   final List<Recipe?>? recipes;
 
@@ -189,7 +184,7 @@
 }
 
 class PestoLogo extends StatefulWidget {
-  const PestoLogo({Key? key, this.height, this.t}) : super(key: key);
+  const PestoLogo({super.key, this.height, this.t});
 
   final double? height;
   final double? t;
@@ -252,7 +247,7 @@
 
 // A card with the recipe's image, author, and title.
 class RecipeCard extends StatelessWidget {
-  const RecipeCard({ Key? key, this.recipe, this.onTap }) : super(key: key);
+  const RecipeCard({ super.key, this.recipe, this.onTap });
 
   final Recipe? recipe;
   final VoidCallback? onTap;
@@ -314,7 +309,7 @@
 
 // Displays one recipe. Includes the recipe sheet with a background image.
 class RecipePage extends StatefulWidget {
-  const RecipePage({ Key? key, this.recipe }) : super(key: key);
+  const RecipePage({ super.key, this.recipe });
 
   final Recipe? recipe;
 
@@ -433,7 +428,7 @@
 
 /// Displays the recipe's name and instructions.
 class RecipeSheet extends StatelessWidget {
-  RecipeSheet({ Key? key, this.recipe }) : super(key: key);
+  RecipeSheet({ super.key, this.recipe });
 
   final TextStyle titleStyle = const PestoStyle(fontSize: 34.0);
   final TextStyle descriptionStyle = const PestoStyle(fontSize: 15.0, color: Colors.black54, height: 24.0/15.0);
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/app.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/app.dart
index 8ba3357..cf62ff5 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/app.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/app.dart
@@ -13,7 +13,7 @@
 import 'supplemental/cut_corners_border.dart';
 
 class ShrineApp extends StatefulWidget {
-  const ShrineApp({Key? key}) : super(key: key);
+  const ShrineApp({super.key});
 
   @override
   State<ShrineApp> createState() => _ShrineAppState();
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/backdrop.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/backdrop.dart
index 9e8a3c5..c4d77ba 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/backdrop.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/backdrop.dart
@@ -14,10 +14,9 @@
 class _TappableWhileStatusIs extends StatefulWidget {
   const _TappableWhileStatusIs(
       this.status, {
-        Key? key,
         this.controller,
         this.child,
-      }) : super(key: key);
+      });
 
   final AnimationController? controller;
   final AnimationStatus status;
@@ -72,10 +71,9 @@
 
 class _FrontLayer extends StatelessWidget {
   const _FrontLayer({
-    Key? key,
     this.onTap,
     this.child,
-  }) : super(key: key);
+  });
 
   final VoidCallback? onTap;
   final Widget? child;
@@ -109,12 +107,11 @@
 
 class _BackdropTitle extends AnimatedWidget {
   const _BackdropTitle({
-    Key? key,
-    required Animation<double> listenable,
+    required Animation<double> super.listenable,
     this.onPress,
     required this.frontTitle,
     required this.backTitle,
-  }) : super(key: key, listenable: listenable);
+  });
 
   final void Function()? onPress;
   final Widget frontTitle;
@@ -198,13 +195,13 @@
 /// front or back layer is showing.
 class Backdrop extends StatefulWidget {
   const Backdrop({
-    Key? key,
+    super.key,
     required this.frontLayer,
     required this.backLayer,
     required this.frontTitle,
     required this.backTitle,
     required this.controller,
-  }) : super(key: key);
+  });
 
   final Widget frontLayer;
   final Widget backLayer;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/category_menu_page.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/category_menu_page.dart
index b8349ce..7d31212 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/category_menu_page.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/category_menu_page.dart
@@ -11,9 +11,9 @@
 
 class CategoryMenuPage extends StatelessWidget {
   const CategoryMenuPage({
-    Key? key,
+    super.key,
     this.onCategoryTap,
-  }) : super(key: key);
+  });
 
   final VoidCallback? onCategoryTap;
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/expanding_bottom_sheet.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/expanding_bottom_sheet.dart
index cf5b315..e27688a 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/expanding_bottom_sheet.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/expanding_bottom_sheet.dart
@@ -25,8 +25,7 @@
 const double _kWidthForCartIcon = 64.0;
 
 class ExpandingBottomSheet extends StatefulWidget {
-  const ExpandingBottomSheet({Key? key, required this.hideController})
-      : super(key: key);
+  const ExpandingBottomSheet({super.key, required this.hideController});
 
   final AnimationController hideController;
 
@@ -403,7 +402,7 @@
 }
 
 class ProductThumbnailRow extends StatefulWidget {
-  const ProductThumbnailRow({Key? key}) : super(key: key);
+  const ProductThumbnailRow({super.key});
 
   @override
   State<ProductThumbnailRow> createState() => _ProductThumbnailRowState();
@@ -512,7 +511,7 @@
 }
 
 class ExtraProductsNumber extends StatelessWidget {
-  const ExtraProductsNumber({Key? key}) : super(key: key);
+  const ExtraProductsNumber({super.key});
 
   // Calculates the number to be displayed at the end of the row if there are
   // more than three products in the cart. This calculates overflow products,
@@ -555,7 +554,7 @@
 }
 
 class ProductThumbnail extends StatelessWidget {
-  const ProductThumbnail(this.animation, this.opacityAnimation, this.product, {Key? key}) : super(key: key);
+  const ProductThumbnail(this.animation, this.opacityAnimation, this.product, {super.key});
 
   final Animation<double> animation;
   final Animation<double> opacityAnimation;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/home.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/home.dart
index 3e9a090..2aec3c9 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/home.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/home.dart
@@ -12,7 +12,7 @@
 import 'supplemental/asymmetric_view.dart';
 
 class ProductPage extends StatelessWidget {
-  const ProductPage({Key? key, this.category = Category.all}) : super(key: key);
+  const ProductPage({super.key, this.category = Category.all});
 
   final Category category;
 
@@ -29,8 +29,8 @@
   const HomePage({
     this.expandingBottomSheet,
     this.backdrop,
-    Key? key,
-  }) : super(key: key);
+    super.key,
+  });
 
   final ExpandingBottomSheet? expandingBottomSheet;
   final Backdrop? backdrop;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/login.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/login.dart
index 8067bdb..e098319 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/login.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/login.dart
@@ -7,7 +7,7 @@
 import 'colors.dart';
 
 class LoginPage extends StatefulWidget {
-  const LoginPage({Key? key}) : super(key: key);
+  const LoginPage({super.key});
 
   @override
   State<LoginPage> createState() => _LoginPageState();
@@ -123,7 +123,7 @@
 }
 
 class PrimaryColorOverride extends StatelessWidget {
-  const PrimaryColorOverride({Key? key, this.color, this.child}) : super(key: key);
+  const PrimaryColorOverride({super.key, this.color, this.child});
 
   final Color? color;
   final Widget? child;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/shopping_cart.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/shopping_cart.dart
index 9f6ab9f..8547ddd 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/shopping_cart.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/shopping_cart.dart
@@ -14,7 +14,7 @@
 const double _leftColumnWidth = 60.0;
 
 class ShoppingCartPage extends StatefulWidget {
-  const ShoppingCartPage({Key? key}) : super(key: key);
+  const ShoppingCartPage({super.key});
 
   @override
   State<ShoppingCartPage> createState() => _ShoppingCartPageState();
@@ -103,7 +103,7 @@
 }
 
 class ShoppingCartSummary extends StatelessWidget {
-  const ShoppingCartSummary({Key? key, this.model}) : super(key: key);
+  const ShoppingCartSummary({super.key, this.model});
 
   final AppStateModel? model;
 
@@ -182,11 +182,11 @@
 
 class ShoppingCartRow extends StatelessWidget {
   const ShoppingCartRow({
-    Key? key,
+    super.key,
     required this.product,
     required this.quantity,
     this.onPressed,
-  }) : super(key: key);
+  });
 
   final Product product;
   final int? quantity;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/asymmetric_view.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/asymmetric_view.dart
index b19b699..ee28cf7 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/asymmetric_view.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/asymmetric_view.dart
@@ -8,7 +8,7 @@
 import 'product_columns.dart';
 
 class AsymmetricView extends StatelessWidget {
-  const AsymmetricView({Key? key, this.products}) : super(key: key);
+  const AsymmetricView({super.key, this.products});
 
   final List<Product>? products;
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/cut_corners_border.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/cut_corners_border.dart
index be3bac7..0b04d51 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/cut_corners_border.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/cut_corners_border.dart
@@ -8,15 +8,11 @@
 
 class CutCornersBorder extends OutlineInputBorder {
   const CutCornersBorder({
-    BorderSide borderSide = BorderSide.none,
-    BorderRadius borderRadius = const BorderRadius.all(Radius.circular(2.0)),
+    super.borderSide = BorderSide.none,
+    super.borderRadius = const BorderRadius.all(Radius.circular(2.0)),
     this.cut = 7.0,
-    double gapPadding = 2.0,
-  }) : super(
-    borderSide: borderSide,
-    borderRadius: borderRadius,
-    gapPadding: gapPadding,
-  );
+    super.gapPadding = 2.0,
+  });
 
   @override
   CutCornersBorder copyWith({
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/product_card.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/product_card.dart
index 208560f..17ff0fe 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/product_card.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/product_card.dart
@@ -10,8 +10,8 @@
 import '../model/product.dart';
 
 class ProductCard extends StatelessWidget {
-  const ProductCard({ Key? key, this.imageAspectRatio = 33 / 49, this.product })
-      : assert(imageAspectRatio > 0), super(key: key);
+  const ProductCard({ super.key, this.imageAspectRatio = 33 / 49, this.product })
+      : assert(imageAspectRatio > 0);
 
   final double imageAspectRatio;
   final Product? product;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/product_columns.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/product_columns.dart
index f2a8fc7..028e97d 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/product_columns.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine/supplemental/product_columns.dart
@@ -9,10 +9,10 @@
 
 class TwoProductCardColumn extends StatelessWidget {
   const TwoProductCardColumn({
-    Key? key,
+    super.key,
     required this.bottom,
     this.top,
-  }) : super(key: key);
+  });
 
   final Product? bottom, top;
 
@@ -58,7 +58,7 @@
 }
 
 class OneProductCardColumn extends StatelessWidget {
-  const OneProductCardColumn({Key? key, this.product}) : super(key: key);
+  const OneProductCardColumn({super.key, this.product});
 
   final Product? product;
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/shrine_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/shrine_demo.dart
index 719396e..97e6c52 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/shrine_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/shrine_demo.dart
@@ -6,7 +6,7 @@
 import 'shrine/app.dart';
 
 class ShrineDemo extends StatelessWidget {
-  const ShrineDemo({ Key? key }) : super(key: key);
+  const ShrineDemo({ super.key });
 
   static const String routeName = '/shrine'; // Used by the Gallery app.
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo.dart
index ba11346..ae2ac05 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo.dart
@@ -9,7 +9,7 @@
 import 'transformations_demo_gesture_transformable.dart';
 
 class TransformationsDemo extends StatefulWidget {
-  const TransformationsDemo({ Key? key }) : super(key: key);
+  const TransformationsDemo({ super.key });
 
   static const String routeName = '/transformations';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_color_picker.dart b/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_color_picker.dart
index 3440289..bc7ad93 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_color_picker.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_color_picker.dart
@@ -8,11 +8,11 @@
 @immutable
 class ColorPicker extends StatelessWidget {
   const ColorPicker({
-    Key? key,
+    super.key,
     required this.colors,
     required this.selectedColor,
     this.onColorSelection,
-  }) : super(key: key);
+  });
 
   final Set<Color> colors;
   final Color selectedColor;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_edit_board_point.dart b/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_edit_board_point.dart
index bb8eb2d..260d007 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_edit_board_point.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_edit_board_point.dart
@@ -10,10 +10,10 @@
 @immutable
 class EditBoardPoint extends StatelessWidget {
   const EditBoardPoint({
-    Key? key,
+    super.key,
     required this.boardPoint,
     this.onColorSelection,
-  }) : super(key: key);
+  });
 
   final BoardPoint boardPoint;
   final ValueChanged<Color>? onColorSelection;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_gesture_transformable.dart b/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_gesture_transformable.dart
index f083074..03c0324 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_gesture_transformable.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/transformations/transformations_demo_gesture_transformable.dart
@@ -14,7 +14,7 @@
 @immutable
 class GestureTransformable extends StatefulWidget {
   const GestureTransformable({
-    Key? key,
+    super.key,
     // The child to perform the transformations on.
     required this.child,
     // The desired visible size of the widget and the area that is receptive to
@@ -75,8 +75,7 @@
        assert(
          !reset || onResetEnd != null,
          'Must implement onResetEnd to use reset.',
-       ),
-       super(key: key);
+       );
 
   final Widget child;
   final Size size;
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/typography_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/typography_demo.dart
index 38a6eb0..cc7c25a 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/typography_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/typography_demo.dart
@@ -6,11 +6,11 @@
 
 class TextStyleItem extends StatelessWidget {
   const TextStyleItem({
-    Key? key,
+    super.key,
     required this.name,
     required this.style,
     required this.text,
-  }) : super(key: key);
+  });
 
   final String name;
   final TextStyle style;
@@ -39,7 +39,7 @@
 }
 
 class TypographyDemo extends StatelessWidget {
-  const TypographyDemo({Key? key}) : super(key: key);
+  const TypographyDemo({super.key});
 
   static const String routeName = '/typography';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/demo/video_demo.dart b/dev/integration_tests/flutter_gallery/lib/demo/video_demo.dart
index 33fe67f..45155f3 100644
--- a/dev/integration_tests/flutter_gallery/lib/demo/video_demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/demo/video_demo.dart
@@ -12,7 +12,7 @@
 import 'package:video_player/video_player.dart';
 
 class VideoCard extends StatelessWidget {
-  const VideoCard({ Key? key, this.controller, this.title, this.subtitle }) : super(key: key);
+  const VideoCard({ super.key, this.controller, this.title, this.subtitle });
 
   final VideoPlayerController? controller;
   final String? title;
@@ -93,7 +93,7 @@
 }
 
 class VideoPlayerLoading extends StatefulWidget {
-  const VideoPlayerLoading(this.controller, {Key? key}) : super(key: key);
+  const VideoPlayerLoading(this.controller, {super.key});
 
   final VideoPlayerController? controller;
 
@@ -137,7 +137,7 @@
 }
 
 class VideoPlayPause extends StatefulWidget {
-  const VideoPlayPause(this.controller, {Key? key}) : super(key: key);
+  const VideoPlayPause(this.controller, {super.key});
 
   final VideoPlayerController? controller;
 
@@ -203,10 +203,10 @@
 
 class FadeAnimation extends StatefulWidget {
   const FadeAnimation({
-    Key? key,
+    super.key,
     this.child,
     this.duration = const Duration(milliseconds: 500),
-  }) : super(key: key);
+  });
 
   final Widget? child;
   final Duration duration;
@@ -266,10 +266,10 @@
 
 class ConnectivityOverlay extends StatefulWidget {
   const ConnectivityOverlay({
-    Key? key,
+    super.key,
     this.child,
     this.connectedCompleter,
-  }) : super(key: key);
+  });
 
   final Widget? child;
   final Completer<void>? connectedCompleter;
@@ -343,7 +343,7 @@
 }
 
 class VideoDemo extends StatefulWidget {
-  const VideoDemo({ Key? key }) : super(key: key);
+  const VideoDemo({ super.key });
 
   static const String routeName = '/video';
 
diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/about.dart b/dev/integration_tests/flutter_gallery/lib/gallery/about.dart
index b77c8d2..a22950f 100644
--- a/dev/integration_tests/flutter_gallery/lib/gallery/about.dart
+++ b/dev/integration_tests/flutter_gallery/lib/gallery/about.dart
@@ -22,8 +22,7 @@
   // manage the recognizer from outside the TextSpan, e.g. in the State of a
   // stateful widget that then hands the recognizer to the TextSpan.
 
-  _LinkTextSpan({ TextStyle? style, String? url, String? text }) : super(
-    style: style,
+  _LinkTextSpan({ super.style, String? url, String? text }) : super(
     text: text ?? url,
     recognizer: TapGestureRecognizer()..onTap = () {
       launch(url!, forceSafariVC: false);
diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/app.dart b/dev/integration_tests/flutter_gallery/lib/gallery/app.dart
index 902e001..4e17769 100644
--- a/dev/integration_tests/flutter_gallery/lib/gallery/app.dart
+++ b/dev/integration_tests/flutter_gallery/lib/gallery/app.dart
@@ -21,14 +21,14 @@
 
 class GalleryApp extends StatefulWidget {
   const GalleryApp({
-    Key? key,
+    super.key,
     this.updateUrlFetcher,
     this.enablePerformanceOverlay = true,
     this.enableRasterCacheImagesCheckerboard = true,
     this.enableOffscreenLayersCheckerboard = true,
     this.onSendFeedback,
     this.testMode = false,
-  }) : super(key: key);
+  });
 
   final UpdateUrlFetcher? updateUrlFetcher;
   final bool enablePerformanceOverlay;
diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/backdrop.dart b/dev/integration_tests/flutter_gallery/lib/gallery/backdrop.dart
index 2d1f23a..4beec4d 100644
--- a/dev/integration_tests/flutter_gallery/lib/gallery/backdrop.dart
+++ b/dev/integration_tests/flutter_gallery/lib/gallery/backdrop.dart
@@ -25,10 +25,9 @@
 class _TappableWhileStatusIs extends StatefulWidget {
   const _TappableWhileStatusIs(
     this.status, {
-    Key? key,
     this.controller,
     this.child,
-  }) : super(key: key);
+  });
 
   final AnimationController? controller;
   final AnimationStatus status;
@@ -83,12 +82,11 @@
 
 class _CrossFadeTransition extends AnimatedWidget {
   const _CrossFadeTransition({
-    Key? key,
     this.alignment = Alignment.center,
     required Animation<double> progress,
     this.child0,
     this.child1,
-  }) : super(key: key, listenable: progress);
+  }) : super(listenable: progress);
 
   final AlignmentGeometry alignment;
   final Widget? child0;
@@ -134,11 +132,10 @@
 
 class _BackAppBar extends StatelessWidget {
   const _BackAppBar({
-    Key? key,
     this.leading = const SizedBox(width: 56.0),
     required this.title,
     this.trailing,
-  }) : super(key: key);
+  });
 
   final Widget leading;
   final Widget title;
@@ -179,14 +176,14 @@
 
 class Backdrop extends StatefulWidget {
   const Backdrop({
-    Key? key,
+    super.key,
     this.frontAction,
     this.frontTitle,
     this.frontHeading,
     this.frontLayer,
     this.backTitle,
     this.backLayer,
-  }) : super(key: key);
+  });
 
   final Widget? frontAction;
   final Widget? frontTitle;
diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/demo.dart b/dev/integration_tests/flutter_gallery/lib/gallery/demo.dart
index 5e6d449..9126b2c 100644
--- a/dev/integration_tests/flutter_gallery/lib/gallery/demo.dart
+++ b/dev/integration_tests/flutter_gallery/lib/gallery/demo.dart
@@ -42,13 +42,13 @@
 
 class TabbedComponentDemoScaffold extends StatelessWidget {
   const TabbedComponentDemoScaffold({
-    Key? key,
+    super.key,
     this.title,
     this.demos,
     this.actions,
     this.isScrollable = true,
     this.showExampleCodeAction = true,
-  }) : super(key: key);
+  });
 
   final List<ComponentDemoTabData>? demos;
   final String? title;
@@ -148,7 +148,7 @@
 }
 
 class FullScreenCodeDialog extends StatefulWidget {
-  const FullScreenCodeDialog({ Key? key, this.exampleCodeTag }) : super(key: key);
+  const FullScreenCodeDialog({ super.key, this.exampleCodeTag });
 
   final String? exampleCodeTag;
 
@@ -216,13 +216,12 @@
 }
 
 class MaterialDemoDocumentationButton extends StatelessWidget {
-  MaterialDemoDocumentationButton(String routeName, { Key? key })
+  MaterialDemoDocumentationButton(String routeName, { super.key })
     : documentationUrl = kDemoDocumentationUrl[routeName],
       assert(
         kDemoDocumentationUrl[routeName] != null,
         'A documentation URL was not specified for demo route $routeName in kAllGalleryDemos',
-      ),
-      super(key: key);
+      );
 
   final String? documentationUrl;
 
@@ -237,13 +236,12 @@
 }
 
 class CupertinoDemoDocumentationButton extends StatelessWidget {
-  CupertinoDemoDocumentationButton(String routeName, { Key? key })
+  CupertinoDemoDocumentationButton(String routeName, { super.key })
     : documentationUrl = kDemoDocumentationUrl[routeName],
       assert(
         kDemoDocumentationUrl[routeName] != null,
         'A documentation URL was not specified for demo route $routeName in kAllGalleryDemos',
-      ),
-      super(key: key);
+      );
 
   final String? documentationUrl;
 
diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/home.dart b/dev/integration_tests/flutter_gallery/lib/gallery/home.dart
index ffe6b2e..9b12086 100644
--- a/dev/integration_tests/flutter_gallery/lib/gallery/home.dart
+++ b/dev/integration_tests/flutter_gallery/lib/gallery/home.dart
@@ -18,7 +18,7 @@
 const Duration _kFrontLayerSwitchDuration = Duration(milliseconds: 300);
 
 class _FlutterLogo extends StatelessWidget {
-  const _FlutterLogo({ Key? key }) : super(key: key);
+  const _FlutterLogo();
 
   @override
   Widget build(BuildContext context) {
@@ -41,10 +41,9 @@
 
 class _CategoryItem extends StatelessWidget {
   const _CategoryItem({
-    Key? key,
     this.category,
     this.onTap,
-  }) : super (key: key);
+  });
 
   final GalleryDemoCategory? category;
   final VoidCallback? onTap;
@@ -95,10 +94,9 @@
 
 class _CategoriesPage extends StatelessWidget {
   const _CategoriesPage({
-    Key? key,
     this.categories,
     this.onCategoryTap,
-  }) : super(key: key);
+  });
 
   final Iterable<GalleryDemoCategory>? categories;
   final ValueChanged<GalleryDemoCategory>? onCategoryTap;
@@ -162,7 +160,7 @@
 }
 
 class _DemoItem extends StatelessWidget {
-  const _DemoItem({ Key? key, this.demo }) : super(key: key);
+  const _DemoItem({ this.demo });
 
   final GalleryDemo? demo;
 
@@ -262,10 +260,10 @@
 
 class GalleryHome extends StatefulWidget {
   const GalleryHome({
-    Key? key,
+    super.key,
     this.testMode = false,
     this.optionsPage,
-  }) : super(key: key);
+  });
 
   final Widget? optionsPage;
   final bool testMode;
diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/options.dart b/dev/integration_tests/flutter_gallery/lib/gallery/options.dart
index 0c96fdc..5cd81d1 100644
--- a/dev/integration_tests/flutter_gallery/lib/gallery/options.dart
+++ b/dev/integration_tests/flutter_gallery/lib/gallery/options.dart
@@ -93,7 +93,7 @@
 const EdgeInsetsDirectional _kItemPadding = EdgeInsetsDirectional.only(start: 56.0);
 
 class _OptionsItem extends StatelessWidget {
-  const _OptionsItem({ Key? key, this.child }) : super(key: key);
+  const _OptionsItem({ this.child });
 
   final Widget? child;
 
@@ -167,7 +167,7 @@
 }
 
 class _TextButton extends StatelessWidget {
-  const _TextButton({ Key? key, this.onPressed, this.child }) : super(key: key);
+  const _TextButton({ this.onPressed, this.child });
 
   final VoidCallback? onPressed;
   final Widget? child;
@@ -467,11 +467,11 @@
 
 class GalleryOptionsPage extends StatelessWidget {
   const GalleryOptionsPage({
-    Key? key,
+    super.key,
     this.options,
     this.onOptionsChanged,
     this.onSendFeedback,
-  }) : super(key: key);
+  });
 
   final GalleryOptions? options;
   final ValueChanged<GalleryOptions>? onOptionsChanged;
diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/updater.dart b/dev/integration_tests/flutter_gallery/lib/gallery/updater.dart
index 9a81ac7..fc07d46 100644
--- a/dev/integration_tests/flutter_gallery/lib/gallery/updater.dart
+++ b/dev/integration_tests/flutter_gallery/lib/gallery/updater.dart
@@ -9,8 +9,7 @@
 typedef UpdateUrlFetcher = Future<String?> Function();
 
 class Updater extends StatefulWidget {
-  const Updater({ required this.updateUrlFetcher, this.child, Key? key })
-    : super(key: key);
+  const Updater({ required this.updateUrlFetcher, this.child, super.key });
 
   final UpdateUrlFetcher updateUrlFetcher;
   final Widget? child;
diff --git a/dev/integration_tests/flutter_gallery/pubspec.yaml b/dev/integration_tests/flutter_gallery/pubspec.yaml
index c0a49c5..824f91c 100644
--- a/dev/integration_tests/flutter_gallery/pubspec.yaml
+++ b/dev/integration_tests/flutter_gallery/pubspec.yaml
@@ -1,7 +1,7 @@
 name: flutter_gallery
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.17.0-0 <3.0.0"
 
 dependencies:
   flutter:
diff --git a/dev/integration_tests/flutter_gallery/test/live_smoketest.dart b/dev/integration_tests/flutter_gallery/test/live_smoketest.dart
index 20a1b7b..e8b5150 100644
--- a/dev/integration_tests/flutter_gallery/test/live_smoketest.dart
+++ b/dev/integration_tests/flutter_gallery/test/live_smoketest.dart
@@ -101,7 +101,7 @@
 );
 
 class _LiveWidgetController extends LiveWidgetController {
-  _LiveWidgetController(WidgetsBinding binding) : super(binding);
+  _LiveWidgetController(super.binding);
 
   /// With [frameSync] enabled, Flutter Driver will wait to perform an action
   /// until there are no pending frames in the app under test.