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
164.66k stars 27.13k forks source link

Create a SuperListView that allows most of the features of the native Android RecyclerView #74152

Open mregnauld opened 3 years ago

mregnauld commented 3 years ago

I'm currently migrating a music app from native Android to Flutter, and I'm struggling with a basic concept: Lists.

What I've found so far is that we have:

What I don't understand is: why isn't there any widget that does all of that at the same time?

Also, on a side note, the ReorderableListView performances are very poor when it comes to drag & dropping an item in a long list of items (2000+ items, for example).

Use case

In my app, like quite a few apps actually, I want my users to be able to:

all of that in the same list.

A good example of what I expect can be found here.

Unfortunately, it doesn't provide everything I expect in the following section, and it has some small bugs. Also, even if such libraries exist, lists are a fundamental concept and should benefit from a much better implementation in Flutter.

Proposal

I suggest that you create a SuperListView that can be a sort of a clone of the native Android combo: RecyclerView + ListAdapter + ItemTouchHelper + ItemDecoration, and that could pick up ideas from that library, that allows the following:

Again, this feature is crucial, since lists are such a pain in Flutter when it comes to just a little bit more advanced use cases, as I mentioned here.

iapicca commented 3 years ago

@mregnauld assuming, but not given that "parity" with android would be desirable what would be the practical advantage to have all ListView (and all constructors), AnimatedList and ReorderableListView ? AFAIK all the features you are requesting already exist, it just comes down to implementing it with the appropriate class

mregnauld commented 3 years ago

what would be the practical advantage to have all ListView (and all constructors), AnimatedList and ReorderableListView ?

Because I need them all in the same list, that all, as I explained in the Use case section. But to give you more information:

AFAIK all the features you are requesting already exist, it just comes down to implementing it with the appropriate class

Again, having those features in separate widgets is not the answer when you need all of them in the same place. And the ReorderableListView has serious performance issues when it comes to drag & dropping items in a long list.

HansMuller commented 3 years ago

CC @darrenaustin @goderbauer

nt4f04uNd commented 3 years ago

a few more things to note for this proposal are pointed in https://github.com/flutter/flutter/issues/75256

and i my self also would propose to add a ListWheelScrollView functionalities in it

wph144 commented 3 years ago

Additionally, please add ImplicitlyAnimatedReorderableWrap

aleripe commented 3 years ago

I second this. ImplicitlyAnimatedReorderableList is bugged and poorly maintained.

mregnauld commented 3 years ago

Any update on this?

darrenaustin commented 3 years ago

We have started some initial design work on this, but have nothing ready for review yet. We will certainly update this issue when we have more to discuss or propose.

lazy-geek commented 3 years ago

Is work on this started?

jpolstre commented 2 years ago

The infinite list on flutter is the holy grail, not to mention if those lists contain images ... it's a pipe dream.

tRuNKator commented 2 years ago

currently great_list_view is the best for lists, but still very far from the functionality of the RecyclerView

tk2232 commented 2 years ago

Any update on this?

mregnauld commented 2 years ago

Any update on this? I mean, it's been a year now...

mregnauld commented 2 years ago

currently great_list_view is the best for lists, but still very far from the functionality of the RecyclerView

̷A̷n̷d̷ ̷a̷l̷s̷o̷ ̷q̷u̷i̷t̷e̷ ̷b̷u̷g̷g̷y̷ (sorry, my bad), even though it's a decent alternative...

tRuNKator commented 2 years ago

currently great_list_view is the best for lists, but still very far from the functionality of the RecyclerView

And also quite buggy, even though it's a decent alternative...

a little offtopic, you can always create an issue in the plugin repository

mregnauld commented 2 years ago

currently great_list_view is the best for lists, but still very far from the functionality of the RecyclerView

And also quite buggy, even though it's a decent alternative...

a little offtopic, you can always create an issue in the plugin repository

I agree, you're right. But I just wanted to point out that's it's a real nightmare to make a not-so-advanced list work in Flutter...

mregnauld commented 1 year ago

Any update on this (again)?

Something like great_list_view would actually be great.

Because here are some problems with great_list_view so far:

So a native "super list view" would be, again, very helpful.