1
我知道很多在ViewPager中使用片段的应用程序。我也在我的应用程序中需要它。我没有找到任何指导,我怎么能做到这一点排除this。这里是我的代码:如何正确使用ViewPager片段?
public class MainActivity extends FragmentActivity {
Vector<Fragment> fragments;
ViewPager viewPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
viewPager = (ViewPager) findViewById(R.id.pager);
fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
viewPager.setOffscreenPageLimit(fragments.size());
PagerAdapter pagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
viewPager.setAdapter(pagerAdapter);
viewPager.setCurrentItem(0);
}
class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
}
但是这段代码工作不正常。有时我会在我的Fragment1中出现关于getActivity()返回null的错误。我从这个网站和其他关于这个错误读了很多帖子,现在我知道这是不好的方法 - 使用向量来存储片段。但我仍然不知道,如何正确使用带碎片的ViewPager。请帮忙。
由于大约95%的展示'ViewPager'的示例应用程序是通过在'ViewPager'中使用片段来演示的,所以*特别*会让您感到困惑? – CommonsWare
你应该重命名你的类,在Android中已经有一个PagerAdapter类... – Matthieu
并且在ViewPager中的碎片上有很多教程:http://tamsler.blogspot.com/2011/10/android-viewpager -and-fragments.html,http://thepseudocoder.wordpress.com/2011/10/05/android-page-swiping-using-viewpager/,http://alchemiasoft.wordpress.com/2012/02/15/使用片段在一个视图Pager/... – Matthieu