【问题标题】:save state of fragment on tabs在选项卡上保存片段状态
【发布时间】:2018-08-28 15:31:59
【问题描述】:

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

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

【问题讨论】:

标签: android android-fragments android-tablayout


【解决方案1】:

使用代码创建所有选项卡

viewPager.setOffscreenPageLimit(3);

所以当你从标签移动时它们不会被创建

【讨论】:

    【解决方案2】:

    在这种情况下,您可以使用 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter 您可以在 Difference between FragmentPagerAdapter and FragmentStatePagerAdapter 上阅读相关信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 2020-02-27
      • 1970-01-01
      • 2021-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多