diff --git a/packages/flutter/lib/src/widgets/sliver_persistent_header.dart b/packages/flutter/lib/src/widgets/sliver_persistent_header.dart
index eb165979..754f493 100644
--- a/packages/flutter/lib/src/widgets/sliver_persistent_header.dart
+++ b/packages/flutter/lib/src/widgets/sliver_persistent_header.dart
@@ -402,6 +402,11 @@
       stretchConfiguration: delegate.stretchConfiguration,
     );
   }
+
+  @override
+  void updateRenderObject(BuildContext context, covariant _RenderSliverScrollingPersistentHeaderForWidgets renderObject) {
+    renderObject.stretchConfiguration = delegate.stretchConfiguration;
+  }
 }
 
 class _RenderSliverScrollingPersistentHeaderForWidgets extends RenderSliverScrollingPersistentHeader
diff --git a/packages/flutter/test/widgets/sliver_persistent_header_test.dart b/packages/flutter/test/widgets/sliver_persistent_header_test.dart
new file mode 100644
index 0000000..fe30f1e
--- /dev/null
+++ b/packages/flutter/test/widgets/sliver_persistent_header_test.dart
@@ -0,0 +1,63 @@
+// Copyright 2014 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter/material.dart';
+import 'package:flutter/src/rendering/sliver_persistent_header.dart';
+import 'package:flutter_test/flutter_test.dart';
+
+void main() {
+  testWidgets(
+      '_SliverScrollingPersistentHeader should update stretchConfiguration',
+      (WidgetTester tester) async {
+    for (final double stretchTriggerOffset in <double>[10.0, 20.0]) {
+      await tester.pumpWidget(MaterialApp(
+        home: CustomScrollView(
+          slivers: <Widget>[
+            SliverPersistentHeader(
+              delegate: TestDelegate(
+                stretchConfiguration: OverScrollHeaderStretchConfiguration(
+                  stretchTriggerOffset: stretchTriggerOffset,
+                ),
+              ),
+            )
+          ],
+        ),
+      ));
+    }
+
+    expect(
+        tester.allWidgets.where((Widget w) =>
+            w.runtimeType.toString() == '_SliverScrollingPersistentHeader'),
+        isNotEmpty);
+
+    final RenderSliverScrollingPersistentHeader render = tester.allRenderObjects
+        .whereType<RenderSliverScrollingPersistentHeader>()
+        .first;
+    expect(render.stretchConfiguration?.stretchTriggerOffset, 20);
+  });
+}
+
+class TestDelegate extends SliverPersistentHeaderDelegate {
+  TestDelegate({this.stretchConfiguration, this.showOnScreenConfiguration});
+
+  @override
+  double get maxExtent => 200.0;
+
+  @override
+  double get minExtent => 200.0;
+
+  @override
+  Widget build(
+      BuildContext context, double shrinkOffset, bool overlapsContent) {
+    return Container(height: maxExtent);
+  }
+
+  @override
+  bool shouldRebuild(TestDelegate oldDelegate) => false;
+
+  @override
+  final OverScrollHeaderStretchConfiguration? stretchConfiguration;
+  @override
+  final PersistentHeaderShowOnScreenConfiguration? showOnScreenConfiguration;
+}
