我正在围绕Android的标准有效导航示例,该示例显示了如何创建可滑动视图
可以从下一页下载代码:http://developer.android.com/training/implementing-navigation/lateral.html
在getView()方法中,创建了一个新片段。这不是一个糟糕的做法,也不会导致内存泄漏。
public Fragment getItem(int i) {
switch (i) {
case 0:
// The first section of the app is the most interesting -- it offers
// a launchpad into the other demonstrations in this example application.
return new LaunchpadSectionFragment();
default:
// The other sections of the app are dummy placeholders.
Fragment fragment = new DummySectionFragment();
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, i + 1);
fragment.setArguments(args);
return fragment;
}
}
如果您仔细阅读了ViewPager文档,则提供了两个适配器内容:
来自Android开发人员文档
fragmentPagerAdapter:
当通常有少数几个静态片段要在诸如一组标签之类的情况下,最适合使用此版本的Pager。每个页面的片段都将保存在内存中,尽管在不可见时可能会破坏其视图层次结构。这可能会导致使用大量内存,因为片段实例可以保留任意数量的状态。
fragmentStatePagerAdapter
当有大量页面时,此版本的Pager更有用,更像列表视图。当用户看不到页面时,它们的整个片段可能会被破坏,只能保留该片段的保存状态。与FragmentPagerAdapter相比,Pager可以保持与每个访问的页面相关的记忆更少的记忆,而在页面之间切换时可能会增加开销的成本。
您可以看到,您可以根据您的要求插入ADADPTER,如果有大量数据,则可以实现fragmentStatePagerAdapter,以照顾片段的生命周期。
如果您不想动态创建片段,则可以在构造函数中实例化单个片段,并在GetView上使用
将其返回。myFragment.setArguments(Bundle Instance);