将片段的状态保存在选项卡上

时间:2018-08-28 15:31:59

标签: android android-fragments android-tablayout

我有三个标签,每个标签使用三个不同的片段。当我在选项卡之间移动时,每次回到前一个选项卡时都会重新加载它。是否有办法暂停片段上的当前状态并在再次查看时重用它 。 我的标签适配器

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

以及主要活动

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

2 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用FragmentPagerAdapter代替FragmentStatePagerAdapter 您可以在Difference between FragmentPagerAdapter and FragmentStatePagerAdapter

上阅读有关内容

答案 1 :(得分:0)

使用代码创建所有标签

viewPager.setOffscreenPageLimit(3);

因此,当您从标签页移动时,将不会创建它们