1

I have three tabs and each of them uses three different fragments. When I move between the tabs the previous one gets reloaded every time I go back to it.is there a way to pause the current state on the fragment and reuse it when viewed again . My tab adapter

public class TabAdapter extends FragmentStatePagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
TabAdapter(FragmentManager fm) {
    super(fm);
}
@Override
public Fragment getItem(int position) {
    return mFragmentList.get(position);
}
public void addFragment(Fragment fragment, String title) {
    mFragmentList.add(fragment);
    mFragmentTitleList.add(title);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
    return mFragmentTitleList.get(position);
}
@Override
public int getCount() {
    return mFragmentList.size();
}

and on Main activity

adapter = new TabAdapter(getSupportFragmentManager());
adapter.addFragment(new Daily(), "Daily");
adapter.addFragment(new Trending(), "Popular");
adapter.addFragment(new Random(), "Random");
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
Frisky Coder
  • 103
  • 14

2 Answers2

0

In this case you can use FragmentPagerAdapter instead of FragmentStatePagerAdapter You can read about that on Difference between FragmentPagerAdapter and FragmentStatePagerAdapter

Warrocker
  • 734
  • 6
  • 12
0

Create all tab with code

viewPager.setOffscreenPageLimit(3);

So they will not be created when you move from tab