diff --git a/packages/flutter/lib/src/widgets/scroll_view.dart b/packages/flutter/lib/src/widgets/scroll_view.dart
index 8d8f654..b20ec9f 100644
--- a/packages/flutter/lib/src/widgets/scroll_view.dart
+++ b/packages/flutter/lib/src/widgets/scroll_view.dart
@@ -1524,6 +1524,7 @@
     super.physics,
     super.shrinkWrap,
     super.padding,
+    this.itemExtentBuilder,
     required NullableIndexedWidgetBuilder itemBuilder,
     @Deprecated(
       'Use findItemIndexCallback instead. '
@@ -1558,7 +1559,6 @@
          'Use findItemIndexCallback as findChildIndexCallback is deprecated.',
        ),
        itemExtent = null,
-       itemExtentBuilder = null,
        prototypeItem = null,
        childrenDelegate = SliverChildBuilderDelegate(
          (BuildContext context, int index) {
@@ -1666,6 +1666,14 @@
   /// Unlike [itemExtent] or [prototypeItem], this allows children to have
   /// different extents.
   ///
+  /// For [ListView.separated], the `index` argument passed to the callback
+  /// represents the interleaved child index, which includes both items and separators.
+  /// Even indices correspond to the items, and odd indices correspond to the
+  /// separators.
+  ///
+  /// To map the interleaved child index to the semantic item index (for example,
+  /// to look up the extent in a data list), divide it by 2 (`index ~/ 2`).
+  ///
   /// See also:
   ///
   ///  * [SliverVariedExtentList], the sliver used internally when this property
diff --git a/packages/flutter/test/widgets/list_view_test.dart b/packages/flutter/test/widgets/list_view_test.dart
index 1cd736e..469d99e 100644
--- a/packages/flutter/test/widgets/list_view_test.dart
+++ b/packages/flutter/test/widgets/list_view_test.dart
@@ -1186,4 +1186,40 @@
     );
     expect(tester.getSize(find.byType(ListView)), Size.zero);
   });
+
+  testWidgets(
+    'ListView.separated itemExtentBuilder works with different extents for items and separators',
+    (WidgetTester tester) async {
+      final controller = ScrollController();
+      addTearDown(controller.dispose);
+      await tester.pumpWidget(
+        Directionality(
+          textDirection: TextDirection.ltr,
+          child: ListView.separated(
+            controller: controller,
+            itemCount: 10,
+            itemExtentBuilder: (int index, SliverLayoutDimensions dimensions) {
+              return index.isEven ? 100.0 : 10.0; // 100 for items, 10 for separators
+            },
+            itemBuilder: (BuildContext context, int index) {
+              return SizedBox(height: 100.0, child: Text('Item $index'));
+            },
+            separatorBuilder: (BuildContext context, int index) {
+              return SizedBox(height: 10.0, child: Text('Separator $index'));
+            },
+          ),
+        ),
+      );
+
+      expect(find.text('Item 0'), findsOneWidget);
+      expect(find.text('Separator 0'), findsOneWidget);
+      expect(find.text('Item 5'), findsOneWidget);
+      expect(find.text('Item 6'), findsNothing);
+
+      controller.jumpTo(200.0);
+      await tester.pump();
+      expect(find.text('Item 0'), findsNothing);
+      expect(find.text('Item 1'), findsOneWidget);
+    },
+  );
 }
