如何避免在选项卡更改时重新加载 recyclerview? 例如,我有一个包含三个 Tab 的 TabLayout,我的 ViewPager 是:
class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new Tab1Fragment();
case 1:
return new Tab2Fragment();
case 2:
return new Tab3Fragment();
}
return null;
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "tab1";
case 1:
return "tab2";
case 2:
return "tab3";
}
return null;
}
}
在第一个中,我有一个回收 View ,当我更改选项卡并返回到第一个时,列表会重新加载。 有办法避免这种重新加载吗?保持数据加载。
最佳答案
Android 在 ViewPager
中只在当前 fragment 的任一侧保留一个 fragment 。默认情况下。因此,当您从第三个选项卡返回到第一个选项卡时,它将重新创建第一个选项卡,这就是您的情况。 Here是文档。
您需要将所有 fragment 保存在内存中
viewPager.setOffscreenPageLimit(<(number of fragments in view pager) - 1>)
在你的例子中是 2。
当然,正如文档所建议的那样,这个数字应该保持较低,尤其是在布局复杂的情况下。
关于android - 选项卡更改时如何避免重新加载数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37580774/