Fix SliverScrollingPersistentHeader not able to update stretchConfiguration (#112042)

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;
+}