How to animate the removal of a PageView.Builder item dynamically - flutter

Is it possible to animate the removal of an item in a horizontal PageView.Builder in flutter?
I know there's the AnimatedList but I have been trying to do it on a PageView.Builder as I need a PageView.Builder for my use-case.
I want to make it so once a user presses on an Item from the PageView the item gets removed with an animation. Not Dismissable, but on press.
I would really love if you could point me out to the correct documentation or example.

Unfortunately there is still not a proper way to do this. You can try combining SlideTransition with animateToPage method of the PageController. But it will not be ideal. It would be optimal if there was a AnimatedListView kind of version for the PageView. Or at least a good way to mimic it.

Related

Paging by item Flutter

i would like to achieve pagination with flutter like this: every swipe gesture there i only one page swipped, and it is being centered in the screen. on the edges of the screen you can see parts of the next and previous items i.e the item is NOT THE SIZE OF THE SCREEN. this requirement is important. i can't set the item to be the size of the screen, also it should have padding between the items. for a better understanding i have a gif attached.
Thank you.
https://gfycat.com/soreheartfeltguernseycow
You can achieve the goal easily using PageView widget.
Ive found a class carousel_slider which is easily making that functionallity under the hood using PageView as suggested above.
For anyone who will need such behaviour as in the gif, see https://pub.dev/packages/carousel_slider

Pageview.builder overlapping effect

I'm coding a quiz app. I want to achieve this. Everything is okay but the overlapping effect doesnt. I'm using pageview.builder to navigate between pages. How can i achieve this ?
I think you wish to have a carousel effect for your question cards.
A simple solution would be using ListView horizontally, also there are some packages that you would like to check, for example;
flutter_swiper
carousel_slider

Is it necessary to optimize pageview with large amount of pages in Flutter?

I have a PageView with a large amount of pages in my app. Each of the pages is very complex with a PageView and its own pages.
I'm new to Flutter and my first hunch is that it needs optimization. So within the build() function of the outmost PageView I check the index and only make full page for current, previous and the next page(I guess swipe animation needs current page and the page next to it built ahead). For other pages I just give it an empty Container().
Is this necessary and the right thing to do? I felt this is an obvious optimization that the Flutter should do, but I can't find any related discussion online. Any suggestions are appreciated!
Flutter's PageView is lazily calling itemBuilder you provided. For an index it's called only when the page is really needed and you don't need to do anything more. But for further improvements you can make your view hierarchy simpler and prevent unnecessary build method calls. Here you can read more about Performance best practices.
No, it's not. ListView, GridView, and widgets alike are already optimized to build and render only what is needed in the moment. You get a hint of that in the PageView.builder description :
Creates a scrollable list that works page by page using widgets that
are created on demand
I think the difference between a regular PageView and a PageView.builder is that PageView initializes all children at startup, while PageView.builder are initialized lazily.

Is there any deafult widget like in image or if I need to do it how could that be implemented?

So I am not looking for filters but I am looking for scroll widget. I have tried generating listview items abd getting position of listview to give items ratio but I wasn't able to get any functionality while in certain index position. Any help would be helpfull. Naming of the widget or special widgets that can make me do this etc.
You can use ListView or ListView.builder to do that, but with circle-shaped widgets as the children.
You can check out this tutorial to do the horizontal list. And you can check out this StackOverflow question, to create a circle button. Or instead of a button, you want to use the CircleAvatar (to add an image in it), you can check out this official doc.

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.