我有三个标签,每个标签使用三个不同的片段。当我在选项卡之间移动时,每次回到前一个选项卡时都会重新加载它。是否有办法暂停片段上的当前状态并在再次查看时重用它 。 我的标签适配器
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);
答案 0 :(得分:0)
在这种情况下,您可以使用FragmentPagerAdapter
代替FragmentStatePagerAdapter
您可以在Difference between FragmentPagerAdapter and FragmentStatePagerAdapter
答案 1 :(得分:0)
使用代码创建所有标签
viewPager.setOffscreenPageLimit(3);
因此,当您从标签页移动时,将不会创建它们