Flutter: A horizontal ListView that selects items like a ListWheelScrollView - flutter

I would like to create a scrolling selection widget in Flutter that looks like a horizontal ListView but acts much like a ListWheelScrollView in that it uses FixedExtentScrollController and emits a selection event (callback) for the child scrolled into the center of the list. Especially the list should only allow scrolling by multiples of the size of its children (which are all the same size) and keep one child at the center of the view, even if there are no other children to the right or left.
Is there anything like this out there or do I have to roll my own?

I discovered the Carousel widget from getwidget which can be configured to meet my requirements.

Related

How to center and manipulate the size of a ListView?

I can't change the ListView's position, I would like it to be more in the center. I'll put it on another screen, this is just a test.
I want to put multiple item names inside a ListView on the same screen without overflowing the screen space.
I've read your questions, and based on what I understood.
You want to make your ListView in the middle of the screen Right!!
To do that, you simply have to wrap your Listview in a Center Widget as a child of your container (Pretty easy :) )

How can you know when user scroll to next widget in list flutter (widget before not visible anymore)

I have a ScrollablePositionedList and want to do stuff when the next Widget in the List is scrolled to. How can I detect that? I have tried with NotificationListener and ScrollUpdateNotification but only saw the option to use the height of each widget which is flexible and it would be kinda ugly to do it like this. Is there a better way? Like see the pixel height of a widget or is there a function I could use?
You should be able to monitor what items are visible on screen with:
itemPositionsListener.itemPositions.addListener(() => ...);
Then, based on this. you can see whenever there is a change, whenever a new item is scrolled to / appears in the list. then make whatever changes you want
Here is the documentation for more info

Flutter scrollable list inside overlay

My question is similar to this How to make my page scrollable when i show overlay element, that have too many items in flutter? but it has no answers so I'll try to ask as well:
I have an Overlay showing a list of questions using ListView. The list of questions is long and I need to enable scrolling inside the Overlay.
Now it's static and part of it disappears at the bottom of the mobile device.
Why is not just scrollable (since the list inside the Overlay is inside a ListView) and is there a way to make it scrollable?
Thanks in advance for any help!
UPDATE (SOLVED) :
The problem was that the ListView widget is inside a Positioned widget and the top, left, bottom and width values (in my case) need to be set in order for the content to be scrollable.
The problem was that the ListView widget is inside a Positioned widget and the top, left,bottom and width values (in my case) need to be set in order for the content to be scrollable.

Flutter Sticky widget that belongs to ListView

I want to have a sticky widget similar to the floating widgets in scaffolds, difference is that this widget would belong to a ListView, when it isn't on screen it would behave as a floating widget, when user scrolls so its position be visible it would start animating to stay on its position on the ListView.
Here is a visual example of what I am trying to achieve
https://miro.medium.com/max/1200/1*GsH-kEVNtoDZaM0ZjNYRpQ.gif (the 'MY STICKY BUTTON' widget)
is this even possible in flutter ? and if so how ?
Thanks in advance!

How to keep the scrolling position when adding a new elements in the top using ListView or CustomScrollView in Flutter

Is it possible to add new elements into the top of the ListVeiw or CustomScrollView and keep the scroll position as it's with Flutter
I've tried the following
extentAfter = _scrollController.position.extentAfter;
_scrollController.jumpTo(_scrollController.position.maxScrollExtent - extentAfter);
but this won't work well with SliverAppBar - floating and its actually not optimal solution.
Actually the cleanest way would be to add those items only when user scrolls back to the top of the ListView. You can cache them in memory for the moment user is far enough from the top (in your case) of the list.