在选项卡上保存片段状态

save state of fragment on tabs

我有三个选项卡,每个选项卡都使用三个不同的片段。当我在选项卡之间移动时,每次我返回 it.is 时,前一个选项卡都会重新加载,有一种方法可以暂停片段的当前状态并在再次查看时重新使用它 . 我的标签适配器

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();
}

和主要 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);

在这种情况下,您可以使用 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter 您可以在 Difference between FragmentPagerAdapter and FragmentStatePagerAdapter

上阅读相关内容

使用代码创建所有选项卡

viewPager.setOffscreenPageLimit(3);

因此当您从选项卡移动时不会创建它们