Repository: flutter
Issue: ListView.builder() drag scroll doesn't work on various platforms
Labels: framework,f: scrolling,d: api docs,d: stackoverflow,has reproducible steps,P2,found in release: 3.10,found in release: 3.11,team-framework,triaged-framework

<!-- Thank you for using Flutter!

     If you are looking for support, please check out our documentation
     or consider asking a question on Stack Overflow:
      * https://flutter.dev/
      * https://api.flutter.dev/
      * https://stackoverflow.com/questions/tagged/flutter?sort=frequent

     If you have found a bug or if our documentation doesn't have an answer
     to what you're looking for, then fill out the template below. Please read
     our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports
-->

I have some code that uses `ListView.builder()` that scrolls just fine on Chrome for desktop but does not scroll when using Chrome for Android. I have included a sample app that has a toggle switch that switches between generating a list of cards inside a column and using `ListView.builder()` to generate the cards. The app works with the switch in either position on Chrome for desktop but does not scroll on Chrome for Android when the switch is set for `ListView.builder()`.

Note that I deployed my code (after running `flutter build web`) to test with Chrome for Android.

## Steps to Reproduce

<!-- You must include full steps to reproduce so that we can reproduce the problem. -->

Here is my main.dart:

```
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Scrollbar(
        child: SingleChildScrollView(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              _buildSwitch(context),
              _buildList(context),
            ],
          ),
        ),
      ),
    );
  }

  bool _useListView = false;

  Widget _buildSwitch(BuildContext context) {
    return SwitchListTile(
      title: Text('Use ListView.builder()'),
      value: _useListView,
      onChanged: (value) {
        setState(() => _useListView = value);
      },
    );
  }

  Widget _itemBuilder(BuildContext context, int index) {
    return Card(
      child: ListTile(
        title: Text('Card $index'),
      ),
    );
  }

  Widget _buildList(BuildContext context) {
    if (_useListView) {
      return ListView.builder(
        itemCount: 15,
        itemBuilder: _itemBuilder,
        shrinkWrap: true,
      );
    }
    // The above didn't work on Chrome Android but this does:
    final items = List<Widget>.generate(
      15,
      (index) => _itemBuilder(context, index),
    );
    return Column(children: items);
  }
}

```


**Expected results:** <!-- what did you want to see? -->

You can scroll the list of cards regardless of switch position on both Chrome for desktop and Chrome for Android.

**Actual results:** <!-- what did you see? -->

- On Chrome for desktop the list of cards will scroll regardless of switch position.
- On Chrome for Android the list of cards will not scroll when the switch is turned "on".

<details>
  <summary>Logs</summary>

<!--
      Run your application with `flutter run --verbose` and attach all the
      log output below between the lines with the backticks. If there is an
      exception, please see if the error message includes enough information
      to explain how to solve the issue.
-->

`flutter run --verbose` produced no output while the app was running on the desktop. I ran a deployed version of the code when testing Chrome for Android (`flutter build web`).

```
```

<!--
     Run `flutter analyze` and attach any output of that command below.
     If there are any analysis errors, try resolving them before filing this issue.
-->

```
$ flutter analyze
Analyzing scroll_test...                                                
No issues found! (ran in 1.4s)
```

<!-- Finally, paste the output of running `flutter doctor -v` here. -->

```
$ flutter doctor -v
[✓] Flutter (Channel stable, 2.0.5, on Mac OS X 10.15.7 19H524 darwin-x64, locale en-US)
    • Flutter version 2.0.5 at /Users/brianneal/workspaces/bgn/flutter
    • Framework revision adc687823a (4 days ago), 2021-04-16 09:40:20 -0700
    • Engine revision b09f014e96
    • Dart version 2.12.3

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.


[✗] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).

[✓] IntelliJ IDEA Ultimate Edition (version 2021.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 55.1.5
    • Dart plugin version 211.6693.108

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 89.0.4389.128

! Doctor found issues in 3 categories.
```
</details>