Currently I have a RecyclerView which upon creation is populated by a list of movies stored in an SQLite DB. Every movie has a genre that can be set by the end user.
I want to be able to set-up dynamic tabs for each genre that users can swipe through for easier access as the dataset grows. I was just at a loss for where to start. Any help is appreciated. Thank you.
TabLayout is where you should start.
You can use addTab() for dynamic tab creation.
TabLayout is made to work well with ViewPager. When you use the setupWithViewPager() method, the two are set up with corresponding event listeners, so that swiping in the ViewPager sets the tab active, and selecting the tab goes to that tab's page in the ViewPager.
I think you can start with ViewPager and use RecyclerView in its fragments.
Related
I need help for how can I implement this if possible.
I want to use ListView to view a ViewPager and then go through them.
What I mean here is, when I click on ListView item0, thus open ViewPager item(in my case fragment)0 and so on. And if I opened ViewPager0 and swaps to 1,2,n So let the ListView know in which ViewPager I am (in order to avoid duplication or crashing).
Thank in advance.
I am making an app which has a navigation drawer. This navigation drawer has 50 menu items. These items have the same layout, same activity but different data.
I want to implement ViewPager in my app so that the user could swipe left and right (manually and automatically).
Issue: I am facing an issue of how to implement this. The activity (for these menu items) has its own methods and functionality. A ViewPager can slide fragments but my issue is that since all of these menu items have the same layout and functionality then it would be much better to use one fragment whose data change with swipes for each menu items.
I don't know how to approach this. Please guide me.
You can do it by using a recycleView,and you will need an arrayAdapter which will help you adapt the data accordingly and you will need to have a separate class that will have all the data you want, you can also have different constructor in that class. You can check this to know more https://www.codexpedia.com/android/a-very-simple-example-of-android-recyclerview/
I am facing a situation as of few days now. I intend to create an activity where there is a TabLayout and a ViewPager.
The tabs in TabLayout corresponds with the fragments/slides in the ViewPager.
Now as of now, each fragment contains the same format,i.e., two TextViews, one under the other, populated with the strings softcoded in string.xml
But this resulted in the creation of too much xml files for the fragments used inside ViewPager.
So I was thinking if it's possible to use only one fragment inside the ViewPager and then programmatically set the strings for those two TextViews in the fragment, that changes each time w.r.t. click on another tab or sliding on the ViewPager area.
This will lessen the no. of fragments to only one, in turn cutting the time to create it and increase the overall performance of the app in which it will be present.
So any insightful help, suggestion, or walkthrough on how to implement this concept - any help on how to do this will be highly appreciated.
You can certainly do that. If you're using FragmentStatePagerAdapter, just initiate the same fragment with different arguments supplied according to it's position and then in fragment check for those arguments and make changes accordingly.
Am running in some weird problem. I have implemented ViewPagerTabStrip by following the tutorial Here
It's working fine and i have implemented Three Tabs.
On the first Page /tab , i am loading the data from server & displaying it in the ListView
The problem is, when i swipe to the Third Page & then i swipe back to Second page, the data of the first page is being loaded from the server again.( View of first tab is re-created.)
From the logs, it seems that this is the behavior of ViewPager & Adapter.
When we are on the first tab, it creates the view of second tab/ page as well in background & when we are on the Second tab, it was doing same for Third tab in background & upon reaching to third tab, it didn't created the view for it self(i.e third tab).
But when we swipe back to second tab, it re created the view of first tab as well.
How to solve this ? we can't afford to load the data from server again and again while swiping through the tabs.
I mean is there any way to stop the reload of data (or re-creation of view) while just swiping through tab pages? It should load the data when the whole fragment activity of View Pager is created and not at the time of swiping.
Any help on this please ?
Yeah, the ViewPager only keeps a certain number of fragments in memory before destroying them- this default number is usually two. Thus, what you have to do is tell the ViewPager to retain those fragments.
The simplest solution is to simply tell the ViewPager to keep three fragments in memory as follows:
viewPager.setOffscreenPageLimit(3);
Here are a few suggested answers on how to retain fragments (with more than just this method) and the reasoning behind the default behaviour as well as these solutions:
ViewPager and fragments — what's the right way to store fragment's state?
retain state of viewpager fragments android
I have a custom ViewPager in which I have 4 fragments, each fragment has different listviews, and its on the start screen of the application. The listview's are taking time to load as soon as the application starts. I'm not pulling any data into the listview, its just the implementation. Implemented OnPageChangeListener to change the listview as I swipe through the fragments
Why does this happen?
changed the implementation, instead of fragments I used PagerAdapter.