Repository: flutter
Issue: Draggable feedback alignment in ListView of Draggable is misplaced
Labels: framework,f: material design,f: scrolling,has reproducible steps,P2,found in release: 3.3,found in release: 3.7,team-design,triaged-design

## Steps to Reproduce

In the following example,
 * I have a list of Draggable items
 * When I select and drag, the feedback icon is not placed under the cursor, but at the left edge of the window (it should be under the cursor).

This behaves correctly for Android targets.
This behaves correctly for web, when a single draggable is shown.
It only seems to fail when Draggables are places in the ListView.



```
import 'package:flutter/material.dart';

Widget draggableExample(BuildContext c) {
  return Draggable<Object>(
    feedback: Icon(Icons.person_add),
    childWhenDragging: Icon(Icons.person),
    onDragStarted: () {},
    onDragCompleted: () {},
    onDraggableCanceled: (velocity, offset) {},
    child: Icon(Icons.person),
  );
}


void main() {
  if (false)
    // Works fine
    runApp(DemoAppSimple(Center(child: draggableExample(null))));
  else
    // Drag feedback is shown pinned to left edge of window
    runApp(DemoAppSimple((DataListView(
        items: List.generate(100, (i) => "$i"),
        itemBuilder: (c, i) => draggableExample(c)))));
}


//////////////////////////////////////

class DemoAppSimple extends StatelessWidget {
  Widget child;

  DemoAppSimple(this.child);

  @override
  Widget build(BuildContext context) =>
      MaterialApp(title: 'Flutter Playground', home: SafeArea(child: child));
}

typedef ItemViewBuilder<ITEM> = Widget Function(BuildContext, ITEM);

Widget DataListView<T>({
  @required Iterable<T> items,
  @required ItemViewBuilder<T> itemBuilder,
  bool scrolls = true,
}) {
  final _items = items.toList();
  final ScrollController scrollController = ScrollController();

  Widget child = ListView.builder(
      controller: scrollController,
      itemCount: _items.length,
      itemBuilder: (c, i) => itemBuilder(c, _items[i]));

  if (scrolls) {
    // Work with web:
    child = Scrollbar(child: child, controller: scrollController);
  }

  return child;
}

```


<details>

<!-- Finally, paste the output of running `flutter doctor -v` here. -->

```
flutter doctor -v
[✓] Flutter (Channel unknown, 1.22.0-12.2.pre, on Linux, locale en_US.UTF-8)
    • Flutter version 1.22.0-12.2.pre at /home/sir/development/flutter
    • Framework revision 2bafdc8226 (13 days ago), 2020-09-25 12:48:22 -0700
    • Engine revision f763b5b9b9
    • Dart version 2.10.0 (build 2.10.0-110.5.beta)

 
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /home/sir/Android/Sdk
    • Platform android-29, build-tools 29.0.2
    • ANDROID_HOME = /home/sir/Android/Sdk
    • Java binary at: /home/sir/soft/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /home/sir/soft/android-studio
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] Connected device (3 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 10 (API 29) (emulator)
    • Web Server (web)                   • web-server    • web-javascript • Flutter Tools
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 80.0.3987.149

• No issues found!

```

</details>