在Android docs中,有FragmentStatePageAdapter
每次Fragment
触发时都会getItem
实例化。这样理智吗?我已经检查过,每次刷卡都会触发,这意味着每次都会创建一个Fragment
?这是对的吗?
@Override
public Fragment getItem(int i) {
Fragment fragment = new DemoObjectFragment();
Bundle args = new Bundle();
// Our object is just an integer :-P
args.putInt(DemoObjectFragment.ARG_OBJECT, i + 1);
fragment.setArguments(args);
return fragment;
}
我对Android很新,所以我只想对此进行健全性检查。这听起来不对。
答案 0 :(得分:1)
这与FragmentStatePagerAdapter
一样正常。
当有大量的寻呼机时,此版本的寻呼机更有用 页面,更像列表视图。当页面不可见时 用户,他们的整个片段可能会被破坏,只保留 保存了该片段的状态。这允许寻呼机保持很多 与每个访问页面相关联的内存较少 FragmentPagerAdapter的代价可能是更多的开销 在页面之间切换。
因此FragmentStatePagerAdapter可以帮助您保持较低的内存占用率。为此,它可能会破坏不可见的碎片。
通常,您可以设置ViewPager的屏幕外页面数量,以便ViewPager.setOffscreenPageLimit()
保留在内存中。