Hey guys, very new to flutter and have been learning in order to start making pull requests on Github. However its been a while since ive used a non-R programming language so I might be a bit rusty with some concepts.
For reference, the repo i want to help out is Thunder
What im trying to do is cause a page to scroll to the top, when the user presses the bottom navigation bar button for that page.
So it goes PageView, CommunityPage, then PostCardList, which is a class containing a ListView showing the cards and whatever else.
I get that I need to pass one of the scrollControllers up to the main PageView level, and then use the BottomNavigationBar onTap (index) function to call an animateTo on it. But i dont know where, or how i pass the scrollcontroller up a level. When i know how, do i just pass it from the PostCardList class, to the CommunityPage class, to the PageView-level class? Or is there some better way??
Sorry for such a low level question but ive been learning this for like 2 or 3 days and have no experience whatsoever hahaha
Thanks!
I have implemented something like this before, if I remember correctly I’ve done it with riverpod’s
ref.listen
.Basically, each tab (of
PageView
) has its ownScrollController
and we don’t care about exact implementation on each tab and simply notify that tab to scroll up. You can create a simpleStateProvider<int>
, then on click ofBottomNavigationBar
set the provider to its index. Then on each tab, useref.listen(theprovider.select(value) => value == tabindex)
etc.There are other ways, of course, but this one gets the job done.
Thanks for the reply! Bit it might be a bit advanced for me at this stage… Do you have any youtube vids or other resources that might help me out with those concepts?
I understand that this might be a little intimidating at first, but trust it’s worth it! Riverpod has a lot of features and is very flexible. Official docs are a great starting point. CodeWithAndrea’s riverpod guide is also great.
There are a ton of videos as well, just search for them, I have no special recommendation