flutter / flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond
https://flutter.dev
BSD 3-Clause "New" or "Revised" License
166.34k stars 27.53k forks source link

Scrolling over a large delta in a very short amount of time in ListView.builder is significantly slower #75399

Open ryanknauer opened 3 years ago

ryanknauer commented 3 years ago

Open the below project on MacOS and try using the scrollbar to jump halfway down the list.

https://gist.github.com/ryanknauer/d8361c0e59ffd51f77b735ea8698714d

Expected: Smooth scrolling. Actual: Freezes for multiple seconds.

This issue does not occur on Linux or Web. Also note that the above is using a fixed itemExtent so this is just an issue of laying out onscreen text as the user scrolls.

Target Platform: MacOS Target OS version/browser: Catalina 10.15.7 Devices: Macbook Pro

pedromassangocode commented 3 years ago

I'm on MacOS and I can reproduce the issue on all platforms, the scroll (with Scrollbar) is not smooth even on Web using the code in the OP.

Tested Devices • Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator) • macOS (desktop) • macos • darwin-x64 • macOS 11.2 20D64 darwin-x64 • Chrome (web) • chrome • web-javascript • Google Chrome 88.0.4324.146

code sample ```dart import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', home: Scaffold( body: Center( child: Scrollbar( child: ListView.builder( itemCount: 10000, itemExtent: 15, itemBuilder: (context, index) { return ListTile( title: Text( 'Hello world Hello world Hello world Hello world Hello world Hello world $index'), ); }, ), ), ), ), ); } } ```
flutter doctor -v ```bash /Users/pedromassango/Code/flutter_master/bin/flutter doctor --verbose [✓] Flutter (Channel master, 1.26.0-18.0.pre.185, on macOS 11.2 20D64 darwin-x64, locale en) • Flutter version 1.26.0-18.0.pre.185 at /Users/pedromassango/Code/flutter_master • Framework revision 89d45baa9b (5 hours ago), 2021-02-04 00:11:03 -0500 • Engine revision b7c672a372 • Dart version 2.12.0 (build 2.12.0-284.0.dev) [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2) • Android SDK at /Users/pedromassango/Library/Android/sdk • Platform android-30, build-tools 30.0.2 • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495) • All Android licenses accepted. [!] Xcode - develop for iOS and macOS • Xcode at /Applications/Xcode.app/Contents/Developer • Xcode 12.1, Build version 12A7403 ! CocoaPods 1.9.3 out of date (1.10.0 is recommended). 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 upgrade 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 (version 4.1) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495) [✓] IntelliJ IDEA Community Edition (version 2020.3.2) • IntelliJ at /Applications/IntelliJ IDEA CE.app • Flutter plugin version 52.2.5 • Dart plugin version 203.6912 [✓] VS Code (version 1.52.1) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.18.1 [✓] Connected device (3 available) • Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 10 (API 29) (emulator) • macOS (desktop) • macos • darwin-x64 • macOS 11.2 20D64 darwin-x64 • Chrome (web) • chrome • web-javascript • Google Chrome 88.0.4324.146 ! Doctor found issues in 1 category. Process finished with exit code 0 ```
ryanknauer commented 3 years ago

For me there is still mild but noticeable choppiness on linux and web, but the performance on Mac is significantly worse(multiple seconds of freezing while text is laying out). The former are tolerable, whereas Mac is unusable. I only emphasis this as it seems there might be separate performance issues underlying for MacOS specifically(which hopefully could be prioritized).

goderbauer commented 3 years ago

/cc @Piinks

csells commented 3 years ago

cc @Piinks

Piinks commented 3 years ago

Thanks @csells, this is not a regression though. This same performance behavior would present itself if you were animating over the same amount of scrollable extent. This is actually not caused by the scrollbar either to that effect.

What is happening here as I understand it is that the scrollbar has made it possible to easily try to drag and scroll over a very large distance in a short amount of time. In the example above, dragging the scrollbar halfway covers a span of 5,000 text widgets, that are all attempting to be built lazily as the scrolling is happening. Basically, the scrollable is going too fast for the text widgets to be built in time.

IIRC this is why we added support for deferred loading in #49319 which was part of solving these issues: #48536 #48305 Basically, the scroll velocity is too fast and the UI can't keep up.

I've modified the example above to illustrate the same behavior when animating the scrollable at a high velocity, you can drag on the Scrollbar here, or tap on the floating action button to trigger the animation, and the behavior is the same.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  final ScrollController controller = ScrollController();
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        floatingActionButton: FloatingActionButton(
          onPressed: () {
            controller.animateTo(
              100000,
              duration: Duration(milliseconds: 500),
              curve: Curves.linear,
            );
          },
        ),
        body: Center(
          child: Scrollbar(
            isAlwaysShown: true,
            controller: controller,
            child: ListView.builder(
              controller: controller,
              itemCount: 10000,
              itemExtent: 15,
              itemBuilder: (context, index) {
                return ListTile(
                  title: Text('Index $index'));
              },
            ),
          ),
        ),
      ),
    );
  }
}

This may be a use case where deferred loading is appropriate. Not sure.

ryanknauer commented 3 years ago

Thanks for pointing out the deferred layout option, I had a hacky workaround for that so that should be much nicer to use! While deferring layout is a good workaround to have for widgets that are slow to load, I would hope that wouldn't be necessary for laying out text.

This goal of this bug was targeted toward Text Layout performance on MacOS. The scrollbar example was to highlight the impact of text layout performance issues and show the clear discrepancy between Mac vs Linux/Web. I agree @Piinks that this doesn't indicate an issue with the scrollbar or even scrolling fidelity in general. Would it be best for me to make a separate bug for this?

dragging the scrollbar halfway covers a span of 5,000 text widgets, that are all attempting to be built lazily as the scrolling is happening

Just to clarify, the scrolling animation isn't getting backed up trying to build all 5,000 intermediate widgets between points A and B. It's oscillating between laying out a page and jumping to wherever your cursor is. The majority of intermediate widgets get skipped since the mouse is still moving while the ui thread is busy laying out text. On Mac this process usually gets backed up on the first page of text it tries to layout.

Hixie commented 3 years ago

In the example above, dragging the scrollbar halfway covers a span of 5,000 text widgets, that are all attempting to be built lazily as the scrolling is happening.

This doesn't seem right. The whole point of fixed item heights is that we don't render any widgets other than those that we are showing on the screen. If the drag spans 5 frames (80ms), and there's 10 lines visible in the viewport, we should render 50 lines, regardless of how far down the drag actually goes.

Piinks commented 3 years ago

This doesn't seem right. The whole point of fixed item heights is that we don't render any widgets other than those that we are showing on the screen. If the drag spans 5 frames (80ms), and there's 10 lines visible in the viewport, we should render 50 lines, regardless of how far down the drag actually goes.

That's what I thought originally, I think I understand from the discussion above that rather than the 50 lines, we should see everything stream by smoothly.

Hixie commented 3 years ago

Looking at the profile on web (--profile mode, using Chrome devtools), it seems we are correctly skipping all the intermediate lines, it just takes a long time to build and lay out all these ListTiles and Text nodes. There's no obviously "slow" code here other than just all the code and there being lots of code. I didn't try macOS as originally reported, however, and on web here at least it doesn't seem to freeze, it's just slow. So that's a separate issue than the original one reported here.

cbracken commented 3 years ago

Update from desktop meeting is that @yjbanov and @goderbauer are in the process of investigating for web.

goderbauer commented 3 years ago

I can reproduce the sluggishness with scrolling on regular macos desktop (non-web) as well, but not the freezing. The reason seems to be the same as on the web: There's no obvious slow item in the trace. It's just that replacing all 127 viewport children with 127 new children (due to the sudden jump in scroll position) takes a long time to layout and build.

In the trace below, layouting takes ~55ms in that scenario. Of that, ~27ms are spend in various build functions for the newly created children. In some frames we also get unlucky and the build is interrupted by ~7ms of garbage collecting.

Here's the trace for future reference, the intersting bits start at the 4,120ms mark: scroll-jank-listtile-text.json.zip

I am going to tinker with this a bit more to see if we can optimize this somehow.

goderbauer commented 3 years ago

Another trace with debugProfileBuildsEnabled and debugProfileLayoutsEnabled set to true: with-debug-options.json.zip, interesting bits are at mark 4,950ms

As suspected, layouting the RenderSliverFixedExtentList (which includes building and layouting all the children) takes a looong time. 60% of the overall layouting time is spend building the new widget children of the list and 37% of the overall layouting time is spent laying out these children. The biggest chunk there is spend in laying out the RenderParagraph objects (about 20% of the overall layout time).

goderbauer commented 3 years ago

I've coded this up in a benchmark to easily reproduce the jank: https://github.com/flutter/flutter/pull/79597

yjbanov commented 3 years ago

Update: the freezing on the web was caused by two things:

  1. GC latency. We were generating paragraphs and pictures faster than GC was collecting them. This caused us to request more and more WASM memory until everything grinds to a halt. @dnfield@google.com implemented an explicit lifecycle for pictures, so we're deleting them as soon as we're done with them.
  2. Within a single frame we measure way more paragraphs than we render. Our assumption in the web engine is that the framework generates relatively small amount of data per frame. We changed the heuristic specifically for paragraphs and are now deleting them more aggressively, caching only a few for the common case that the paragraph is both measured and painted.

I reran the sample provided in https://gist.github.com/ryanknauer/d8361c0e59ffd51f77b735ea8698714d, and I see both much lower memory usage (we stay at the initial 132MB and never grow it), and better performance. There's still some jank (we still measure a lot of paragraphs per frame, and at least the web implementation can't yet handle that much work within 16ms), but far from the original multi-second jank. There's still extreme jank (although no freezing or running out of memory) in the non-fixed extent case. This is somewhat expected, as laying out thousands of text paragraphs is expensive, at least on the web. We'll be gradually improving the constant in text layout over time, but I think other than the constant the web should be on par with AOT at this point.

dnfield commented 3 years ago

Would it make sense to defer paragraph loading the way we do image loading?

And/or: should paragraph layout be async?

Hixie commented 3 years ago

Paragraph layout can't be async, we need results from measuring text to complete layout which itself is synchronous.

dnfield commented 3 years ago

Ahhh.

But we could have a separate paragraph async api to "prelayout" a paragarph, right? I think that's https://github.com/flutter/flutter/issues/41707

Hixie commented 3 years ago

Certainly it's possible for us to create an async paragraph layout API but I don't see how we'd use it here -- to perform the layout of the scrolling list we need to measure everything. I suppose we could have a global stopwatch and after a certain amount of time has passed during layout we just bail and render nothing, but that just swaps one problem (jank) for another (flickering content).

dnfield commented 3 years ago

If you could pre-measure the text you'd be able to do more layout of boxes per second there. Sort of like precaching an image.

Hixie commented 3 years ago

The problem is that we don't know what to measure until we're doing layout.

cbracken commented 3 years ago

@goderbauer @HansMuller has there been any further progress on this since the last update?

jakky1 commented 2 years ago

I'm not sure if anyone have point out that, in Android app (not web application), ListView's itemBuilder will be called [itemCount] times when you call jumpTo from 0 to end. (Flutter v2.8.1)

Here is the test code. After call jumpTo(), you can see it print 10000 times: "build item $index". That's why app freeze.

void main() => runApp(_MyApp());
class _MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final controller = ScrollController();
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: Column(
            children: [
              TextButton(
                  child: const Text("scroll bottom"),
                  onPressed: () {
                    controller.jumpTo(controller.position.maxScrollExtent);
                  }),
              Expanded(
                child: ListView.builder(
                  controller: controller,
                  itemCount: 10000,
                  itemBuilder: (BuildContext context, int index) {
                    log("build item $index");
                    return Text("item $index");
                  },
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
dikeboy commented 2 years ago

image https://github.com/dikeboy/flutter_desktop without calculate element height use like this

`
Widget getProgressBar(){

return  new DragListScrollView(
  itemCount: list.length,
  itemScrollController: itemScrollController,
  itemPositionsListener: itemPositionsListener,
  itemBuilder: (context, index) {
    return  Container(
        height: (index%2+1)*20,
        child:new ListTile(
      title: new Text('${list[index]}'),
    ));
  },
);

} `

vfiruz97 commented 2 years ago

@Piinks Hi Kate. I am on Flutter 3.3.3. I had the same problem. After adding a prototypeItem in ListView. Scroll started working smoothly and fast. Was this the solution?

bigdogs commented 1 year ago

hi, is there any update on this issue? or is any idea/workaround to solve this issue :( (specify prototypeItem or itemExtent can make scroll smooth, but it doesn't fit my need)

ahmeedev commented 1 year ago

hi, is there any update on this issue? I'm using 3.10.5

flutter-triage-bot[bot] commented 1 year ago

This issue is marked P1 but has had no recent status updates.

The P1 label indicates high-priority issues that are at the top of the work list. This is the highest priority level a bug can have if it isn't affecting a top-tier customer or breaking the build. Bugs marked P1 are generally actively being worked on unless the assignee is dealing with a P0 bug (or another P1 bug). Issues at this level should be resolved in a matter of months and should have monthly updates on GitHub.

Please consider where this bug really falls in our current priorities, and label it or assign it accordingly. This allows people to have a clearer picture of what work is actually planned. Thanks!

WelliRigo commented 1 year ago

Any update on this?

jakky1 commented 11 months ago

For everyone who need this issue fixed, maybe this package can be a temp solution : jk_fast_listview It also support index-based jumpTo(index) operation.

Here is sample code:

Widget listview = JkFastListView(
  itemCount: 999999,
  itemBuilder: (context, index) => Text("Item $index"),
);

ps. Please let me know if it is not allowed to promote package here. Thanks.

rmasarovic commented 11 months ago

any update? i stuck with this issue

Trung15010802 commented 7 months ago

PING PING PING !!! Instead of games, fix this issue first 🥇

danagbemava-nc commented 7 months ago

Reproduces on the latest versions of flutter.

Scrolling is fast if the itemExtent is set, but otherwise, it lags quite a bit.

Code sample used can be found in https://github.com/flutter/flutter/issues/75399#issuecomment-780133956

no itemExtent itemExtent set
flutter doctor -v ``` [!] Flutter (Channel stable, 3.19.5, on macOS 14.4.1 23E224 darwin-arm64, locale en-GB) • Flutter version 3.19.5 on channel stable at /Users/nexus/dev/sdks/flutter ! Warning: `flutter` on your path resolves to /Users/nexus/dev/sdks/flutters/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path. ! Warning: `dart` on your path resolves to /Users/nexus/dev/sdks/flutters/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path. • Upstream repository https://github.com/flutter/flutter.git • Framework revision 300451adae (2 weeks ago), 2024-03-27 21:54:07 -0500 • Engine revision e76c956498 • Dart version 3.3.3 • DevTools version 2.31.1 • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades. [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/nexus/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • Java binary at: /Users/nexus/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 15.3) • Xcode at /Applications/Xcode-15.3.0.app/Contents/Developer • Build 15E204a • CocoaPods version 1.14.3 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 2023.1) • Android Studio at /Users/nexus/Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) [✓] IntelliJ IDEA Ultimate Edition (version 2023.2.5) • IntelliJ at /Users/nexus/Applications/IntelliJ IDEA Ultimate.app • Flutter plugin version 77.2.2 • Dart plugin version 232.10286 [✓] VS Code (version 1.87.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.86.0 [✓] Connected device (5 available) • Pixel 7 (mobile) • adb-28291FDH2001SA-5Lv71w._adb-tls-connect._tcp. • android-arm64 • Android 14 (API 34) • Nexus (mobile) • 00008020-001875E83A38002E • ios • iOS 17.4.1 21E236 • Dean’s iPad (mobile) • 00008103-000825C811E3401E • ios • iOS 17.4.1 21E236 • macOS (desktop) • macos • darwin-arm64 • macOS 14.4.1 23E224 darwin-arm64 • Chrome (web) • chrome • web-javascript • Google Chrome 123.0.6312.123 [✓] Network resources • All expected network resources are available. ! Doctor found issues in 1 category. ``` ``` [✓] Flutter (Channel master, 3.22.0-9.0.pre.18, on macOS 14.4.1 23E224 darwin-arm64, locale en-GB) • Flutter version 3.22.0-9.0.pre.18 on channel master at /Users/nexus/dev/sdks/flutters • Upstream repository https://github.com/flutter/flutter.git • Framework revision 53cba24de3 (5 hours ago), 2024-04-11 21:07:19 -0700 • Engine revision 6b37b17099 • Dart version 3.5.0 (build 3.5.0-47.0.dev) • DevTools version 2.34.1 [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/nexus/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • Java binary at: /Users/nexus/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 15.3) • Xcode at /Applications/Xcode-15.3.0.app/Contents/Developer • Build 15E204a • CocoaPods version 1.14.3 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 2023.1) • Android Studio at /Users/nexus/Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) [✓] IntelliJ IDEA Ultimate Edition (version 2023.2.5) • IntelliJ at /Users/nexus/Applications/IntelliJ IDEA Ultimate.app • Flutter plugin version 77.2.2 • Dart plugin version 232.10286 [✓] VS Code (version 1.87.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.86.0 [✓] Connected device (6 available) • Pixel 7 (mobile) • adb-28291FDH2001SA-5Lv71w._adb-tls-connect._tcp. • android-arm64 • Android 14 (API 34) • Nexus (mobile) • 00008020-001875E83A38002E • ios • iOS 17.4.1 21E236 • Dean’s iPad (mobile) • 00008103-000825C811E3401E • ios • iOS 17.4.1 21E236 • macOS (desktop) • macos • darwin-arm64 • macOS 14.4.1 23E224 darwin-arm64 • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin • macOS 14.4.1 23E224 darwin-arm64 • Chrome (web) • chrome • web-javascript • Google Chrome 123.0.6312.123 [✓] Network resources • All expected network resources are available. • No issues found! ```
ahmeedev commented 7 months ago

thanks

On Fri, Apr 12, 2024 at 2:15 PM Daniel Agbemava @.***> wrote:

Reproduces on the latest versions of flutter.

Scrolling is fast if the itemExtent is set, but otherwise, it lags quite a bit.

Code sample used can be found in #75399 (comment) https://github.com/flutter/flutter/issues/75399#issuecomment-780133956 no itemExtent itemExtent set

https://github.com/flutter/flutter/assets/88313112/5529f45c-540c-4a42-83af-2e589c19373a https://github.com/flutter/flutter/assets/88313112/a9599207-0f26-4640-9e08-b138567337ac flutter doctor -v

[!] Flutter (Channel stable, 3.19.5, on macOS 14.4.1 23E224 darwin-arm64, locale en-GB) • Flutter version 3.19.5 on channel stable at /Users/nexus/dev/sdks/flutter ! Warning: flutter on your path resolves to /Users/nexus/dev/sdks/flutters/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path. ! Warning: dart on your path resolves to /Users/nexus/dev/sdks/flutters/bin/dart, which is not inside your current Flutter SDK checkout at /Users/nexus/dev/sdks/flutter. Consider adding /Users/nexus/dev/sdks/flutter/bin to the front of your path. • Upstream repository https://github.com/flutter/flutter.git • Framework revision 300451adae (2 weeks ago), 2024-03-27 21:54:07 -0500 • Engine revision e76c956498 • Dart version 3.3.3 • DevTools version 2.31.1 • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/nexus/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • Java binary at: /Users/nexus/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3) • Xcode at /Applications/Xcode-15.3.0.app/Contents/Developer • Build 15E204a • CocoaPods version 1.14.3

[✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1) • Android Studio at /Users/nexus/Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2.5) • IntelliJ at /Users/nexus/Applications/IntelliJ IDEA Ultimate.app • Flutter plugin version 77.2.2 • Dart plugin version 232.10286

[✓] VS Code (version 1.87.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.86.0

[✓] Connected device (5 available) • Pixel 7 (mobile) • adb-28291FDH2001SA-5Lv71w._adb-tls-connect._tcp. • android-arm64 • Android 14 (API 34) • Nexus (mobile) • 00008020-001875E83A38002E • ios • iOS 17.4.1 21E236 • Dean’s iPad (mobile) • 00008103-000825C811E3401E • ios • iOS 17.4.1 21E236 • macOS (desktop) • macos • darwin-arm64 • macOS 14.4.1 23E224 darwin-arm64 • Chrome (web) • chrome • web-javascript • Google Chrome 123.0.6312.123

[✓] Network resources • All expected network resources are available.

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 3.22.0-9.0.pre.18, on macOS 14.4.1 23E224 darwin-arm64, locale en-GB) • Flutter version 3.22.0-9.0.pre.18 on channel master at /Users/nexus/dev/sdks/flutters • Upstream repository https://github.com/flutter/flutter.git • Framework revision 53cba24de3 (5 hours ago), 2024-04-11 21:07:19 -0700 • Engine revision 6b37b17099 • Dart version 3.5.0 (build 3.5.0-47.0.dev) • DevTools version 2.34.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/nexus/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • Java binary at: /Users/nexus/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314) • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3) • Xcode at /Applications/Xcode-15.3.0.app/Contents/Developer • Build 15E204a • CocoaPods version 1.14.3

[✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1) • Android Studio at /Users/nexus/Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2.5) • IntelliJ at /Users/nexus/Applications/IntelliJ IDEA Ultimate.app • Flutter plugin version 77.2.2 • Dart plugin version 232.10286

[✓] VS Code (version 1.87.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.86.0

[✓] Connected device (6 available) • Pixel 7 (mobile) • adb-28291FDH2001SA-5Lv71w._adb-tls-connect._tcp. • android-arm64 • Android 14 (API 34) • Nexus (mobile) • 00008020-001875E83A38002E • ios • iOS 17.4.1 21E236 • Dean’s iPad (mobile) • 00008103-000825C811E3401E • ios • iOS 17.4.1 21E236 • macOS (desktop) • macos • darwin-arm64 • macOS 14.4.1 23E224 darwin-arm64 • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin • macOS 14.4.1 23E224 darwin-arm64 • Chrome (web) • chrome • web-javascript • Google Chrome 123.0.6312.123

[✓] Network resources • All expected network resources are available.

• No issues found!

— Reply to this email directly, view it on GitHub https://github.com/flutter/flutter/issues/75399#issuecomment-2051366606, or unsubscribe https://github.com/notifications/unsubscribe-auth/AR4HPKEP6REHPFWZTOQMTTTY46QZZAVCNFSM4XCI4QS2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBVGEZTMNRWGA3A . You are receiving this because you commented.Message ID: @.***>

Piinks commented 1 month ago

@chaudharydeepanshu that feedback should be directed to https://github.com/jakky1/jk_fast_listview, not here.